[
https://issues.apache.org/jira/browse/JCR-3016?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13061329#comment-13061329
]
Julian Reschke commented on JCR-3016:
-------------------------------------
I should have mentioned that enabling the hierarchy checker prevents the
problem from happening, and the testtestWithFolderAndFile then yields:
javax.jcr.RepositoryException: Unable to update item: item.save()
at
org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:264)
at
org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)
at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)
at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:329)
at
org.apache.jackrabbit.core.session.SessionSaveOperation.perform(SessionSaveOperation.java:42)
at
org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)
at org.apache.jackrabbit.core.SessionImpl.perform(SessionImpl.java:355)
at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:758)
at
org.apache.jackrabbit.core.OverlappingNodeAddTest.testWithFolderAndFile(OverlappingNodeAddTest.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at
org.apache.jackrabbit.test.AbstractJCRTest.run(AbstractJCRTest.java:456)
at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.apache.jackrabbit.core.state.ItemStateException: Child node
entry with id dd97ff41-ee38-4508-aa13-5909e65322dd has been removed, but is not
present in the changelog
at
org.apache.jackrabbit.core.state.SharedItemStateManager.validateModified(SharedItemStateManager.java:1371)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.validateHierarchy(SharedItemStateManager.java:1143)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.access$9(SharedItemStateManager.java:1134)
at
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:727)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1461)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1491)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:351)
at
org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326)
at
org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:289)
at
org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:258)
... 25 more
(this is for 2.2.4 source btw)
> inconsistent repository after overlapping node add operations
> -------------------------------------------------------------
>
> Key: JCR-3016
> URL: https://issues.apache.org/jira/browse/JCR-3016
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core
> Reporter: Julian Reschke
> Attachments: OverlappingNodeAddTest.diff
>
>
> It seems I can reproduce a sequence of operations that cause the repository
> to be inconsistent.
> The short version: 2 sessions add a same-named child node to the same parent
> folder (not allowing same-name-siblings). Session 1's save() succeeds.
> Session 2's save() fails, but succeeds on retry (!).
> After the operation, the child node created by session 1 is still present,
> but the parent doesn't list it as child node anymore.
> (will add test case)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira