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

Reply via email to