Christoph Kiehl wrote:
I tried the following:
testWorkspace.clone("default", "/" , "/" , false);
My second try was to just clone one of our root nodes:
testWorkspace.clone("default", "/content" , "/content" , false);
This failed because of the following exception:
Caused by: javax.jcr.ReferentialIntegrityException: Target node
c83ca884-4ad4-40a3-a6da-0fb5b8c33608 of REFERENCE property does not exist
at
org.apache.jackrabbit.core.state.SharedItemStateManager.checkReferentialIntegrity(SharedItemStateManager.java:1418)
at
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:556)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:825)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:855)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326)
at
org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:302)
at
org.apache.jackrabbit.core.BatchedItemOperations.update(BatchedItemOperations.java:182)
at
org.apache.jackrabbit.core.WorkspaceImpl.internalCopy(WorkspaceImpl.java:300)
at
org.apache.jackrabbit.core.WorkspaceImpl.clone(WorkspaceImpl.java:403)
Is there any way to clone a whole workspace? Without referential integrity
problems? Apparently clone() seems to copy the whole content into memory before
saving it to the destination workspace. Is that true?
Regards,
Christoph