[ https://issues.apache.org/jira/browse/JCR-3438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13473215#comment-13473215 ]
Nick Tuckett commented on JCR-3438: ----------------------------------- By UserTransaction I mean an equivalent of UserTransactionImpl. And as for "real world", this is very definitely a real world application! It may be that we're abusing Jackrabbit/JCR support for XA, however... > Lock tokens acquired inside a transaction do not get released when session > logs out > ----------------------------------------------------------------------------------- > > Key: JCR-3438 > URL: https://issues.apache.org/jira/browse/JCR-3438 > Project: Jackrabbit Content Repository > Issue Type: Bug > Components: jackrabbit-core > Affects Versions: 2.4.2 > Reporter: Nick Tuckett > Attachments: LockTokenTransactionTest.java > > > When outside a transaction, LockManager.addLockToken() calls > org.apache.jackrabbit.core.lock.LockManagerImpl.addLockToken(). This sets the > lock holder, and if the LockInfo object is actually an InternalLockInfo > object, it adds that object as a session listener. This means that the > LockInfo object is notified when the session is logging out, whereupon it > causes the session to release the lock token. > When adding a lock token inside a transaction, the underlying implementation > calls org.apache.jackrabbit.core.lock.XAEnvironment.addLockToken(). This sets > the lock holder on the LockInfo object but does not add it as a session > listener. Consequently the lock token remains owned by the session, even when > the session finishes logging out. > Subsequent attempts to get the lock token in other sessions using the same > credentials then fail. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira