[
https://issues.apache.org/jira/browse/JCR-1082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dominique Pfister resolved JCR-1082.
------------------------------------
Resolution: Fixed
Bug introduced while fixing JCR-993: in the setup, intermediate node /a/b was
not added to the CachingHierarchyManager's path map with its internal UUID
because its parent /a was transiently modified (by removing its property
propa). Dumping the CHM's path map right before node /a/b/c was removed gave:
/a <uuid>
/b <no uuid>
/c <uuid>
CHM received a notification about node /a/b changing because of the removal of
/a/b/c but was unable to associate this information with its path map entry
/a/b (see above), which left to an inconsistent state.
Fixed by undoing changes in JCR-993 and introducing a new behaviour when child
node entries are reordered: every child entry in the cache now gets checked
whether its name and index are still valid.
Fixed in revision 570736.
> cache getting out of sync with transientstore causes pathnotfoundexception
> --------------------------------------------------------------------------
>
> Key: JCR-1082
> URL: https://issues.apache.org/jira/browse/JCR-1082
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.3.1
> Reporter: quipere
> Assignee: Dominique Pfister
> Attachments: repository.xml,
> TransientStoreOutOfSyncWithCacheTest.java,
> TransientStoreOutOfSyncWithCacheTest.java
>
>
> Done some further debugging and think the problem is in the synchronization
> between cache and transientstore. When I retrieve a childnode when I just
> made its parent node transient (by removing a prop or something), it will not
> be added to the cache. When I then remove this node, its nodeid is not
> removed from cache since its stateId wasn't saved in the cache. After that I
> add the same node node again with the same name. When I now try to retrieve
> this node, I get a path not found exception. I see that by retrieving it, its
> nodeit is resolved from the cache using its path. Only since the removed node
> was not removed from cache it returns the nodeid of the already removed node.
> There is no node present with this id in the transientstore and therefor it
> throws a pathnotfoundexception.
> provided a failing junit test and repository.xml
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.