Trouble with restoreTransient()
-------------------------------
Key: JCR-3295
URL: https://issues.apache.org/jira/browse/JCR-3295
Project: Jackrabbit Content Repository
Issue Type: Bug
Components: jackrabbit-core
Affects Versions: 2.4
Reporter: Jukka Zitting
Assignee: Jukka Zitting
I have a case where transient space is not properly recovered by failed save()
call caused by concurrent modifications by an observation listener that
triggers content updates.
The problems manifest with exceptions like these:
org.apache.jackrabbit.core.state.ItemStateException: there's already a property
state instance with id 60160b9d-94b7-44b2-ad48-564037d8c401/{}nodeId
at
org.apache.jackrabbit.core.state.SessionItemStateManager.createTransientPropertyState(SessionItemStateManager.java:629)
at
org.apache.jackrabbit.core.PropertyImpl.restoreTransient(PropertyImpl.java:189)
org.apache.jackrabbit.core.state.ItemStateException: there's already a node
state instance with id c3c82ae7-df33-4fd2-b732-e95cbbea86a9
at
org.apache.jackrabbit.core.state.SessionItemStateManager.createTransientNodeState(SessionItemStateManager.java:573)
at
org.apache.jackrabbit.core.NodeImpl.restoreTransient(NodeImpl.java:904)
Looks like a concurrent thread is filling in the transient space while the
restoreTransient() call is in progress.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira