Symptoms

If the search index of the system/version workspace cannot be re-built and there is an exception in the log file NoSuchItemStateException: deadbeef-cafe-babe-cafe-babecafebabe

Cause

A common reason for the problem is a invalid child node entry from jcr:system to crx:nodeTypes.

Analysis

If you try to re-create the search index for the system/version workspace, and you get the exception NoSuchItemStateException: deadbeef-cafe-babe-cafe-babecafebabe

Resolution

If your problem is an invalid child node entry from jcr:system to crx:nodeTypes then the following steps will fix the problem:

  1. Disable all search index configurations in the repository.xml and workspace.xml files. Also disable the consistency check and consistency fix for each workspace if enabled (you can run that later on if needed).
  2. You may need to correct the startup script for the Console. To do that, edit server/console.sh, and set replace REPOSITORY_HOME="$CONTEXT/crx" with REPOSITORY_HOME="$CONTEXT/../repository" if this is not yet done. (Please note you can't just add the line at the top of the script, because at that time the CONTEXT may not be set, which would cause the console use a different repository).
  3. In a console window, type:
    cd crx-quickstart/server
    ./console.sh
    
  4. This will start the CRX Console. Then type:
    cd jcr:system
    stat
    
  5. Now the list if child nodes is printed. Example:
    ChildNode Entries:
    + {http://www.jcp.org/jcr/1.0}versionStorage[1] -> deadbeef-face-babe-cafe-babecafebabe
    + {http://www.jcp.org/jcr/1.0}nodeTypes[1] -> deadbeef-cafe-cafe-cafe-babecafebabe
    + {internal}accessControl[1] -> 2cccff3f-c6fe-4294-a030-7c830c6c36ef
    + {http://www.day.com/crx/1.0}nodeTypes[1] -> c67e22c1-2eee-4e48-9505-f00bcf590a36
    + {http://www.day.com/crx/1.0}nodeTypes[2] -> e4469e5a-4892-4760-acd6-3a3e8f120d4e
    

    • If you only see one crx:nodeTypes entry, it is a different problem. If you don't see any http://www.day.com/crx/1.0 entries then you are connected to the wrong repository (review step #2 regarding how to fix the REPOSITORY_HOME the console.sh script).
    • If do see two crx:nodeTypes entries, then do the following to access them to find out which one is invalid:
      stat a42b98a1-b4c1-4f11-8c11-734455a4f53d
      
  6. If the node doesn't exist, you will get an exception 'Unable to perform command'. In that case, remove the child node entry:
    rm -c a42b98a1-b4c1-4f11-8c11-734455a4f53d
    
  7. This will remove the invalid child node entry. Verify it is removed and then quit the Console.
    stat
    exit
    
  8. Re-enable all search index configurations in the repository.xml and workspace.xml files. You may want to delete the index directories so that the Lucene indexes are re-created on startup.
  9. Start CRX.

Applies to

CRX 1.4.x

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy