jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Köll (JIRA) <j...@apache.org>
Subject [jira] [Commented] (JCR-3438) Lock tokens acquired inside a transaction do not get released when session logs out
Date Wed, 10 Oct 2012 12:35:04 GMT

    [ https://issues.apache.org/jira/browse/JCR-3438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13473179#comment-13473179

Claus Köll commented on JCR-3438:

Hi Nick. I think you should not mix a xa and a normal call. Normally in XA Environment you
can not close a session. A Session is wrapped within a JCASessionHandle.
The XA Container will close your Session when he closes the JCAManagedConnection.
Please have a look at XATest.java There we have several testcases about locking in xa environment.
> 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
> 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

View raw message