Last updated on
16 May 2021
|
Also applies to CRX
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:
- 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).
- You may need to correct the startup script for the Console. To do that, edit
server/console.sh
, and set replaceREPOSITORY_HOME="$CONTEXT/crx"
withREPOSITORY_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). - In a console window, type:
cd crx-quickstart/server ./console.sh
- This will start the CRX Console. Then type:
cd jcr:system stat
- 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 anyhttp://www.day.com/crx/1.0
entries then you are connected to the wrong repository (review step #2 regarding how to fix theREPOSITORY_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
- If you only see one
- 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
- This will remove the invalid child node entry. Verify it is removed and then quit the Console.
stat exit
- 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.
- Start CRX.
Applies to
CRX 1.4.x