jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marius Ropotica (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-1634) In XA transaction session.addLockToken() does not have effect
Date Fri, 13 Mar 2009 13:45:50 GMT

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

Marius Ropotica commented on JCR-1634:
--------------------------------------

Well, I've modified the XAEnvironment and XALockManager classes.  I'm not sure that this is
the right solution, but it seems that the problem is gone. 

In XAEnvironment  I've modified addLockToken and removeLockToken methods as following:

    public void addLockToken(SessionImpl session, String lt) {
    	lockMgr.lockTokenAdded(session, lt);
    }

    public void removeLockToken(SessionImpl session, String lt) {
    	lockMgr.lockTokenRemoved(session, lt);
    }

and in XALockManager class the following methods:

    public void lockTokenAdded(SessionImpl session, String lt) {
        if (isInXA()) {
            xaEnv.addLockToken(session, lt);
        } else {
            lockMgr.lockTokenAdded(session, lt);
        }
    }

    public void lockTokenRemoved(SessionImpl session, String lt) {
        if (isInXA()) {
            xaEnv.removeLockToken(session, lt);
        } else {
            lockMgr.lockTokenRemoved(session, lt);
        }
    }


> In XA transaction session.addLockToken() does not have effect
> -------------------------------------------------------------
>
>                 Key: JCR-1634
>                 URL: https://issues.apache.org/jira/browse/JCR-1634
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, locks, transactions
>    Affects Versions: core 1.4.4
>         Environment: Jackrabbit Core 1.4.4, Jencks 2.0, Springmodules 0.8a, Jackrabbit
JCA 1.4
>            Reporter: Roman Puchkovskiy
>         Attachments: test-external-lock-in-tx.zip
>
>
> Following sequence does not work as expected:
> 1. first tx (and first session)
>   create node
>   make it lockable
> 2. second tx (and second session)
>   lock this node and save lock token
> 3. third tx (and third session)
>   add saved lock token to session
>   modify this locked node -> fails as if lock token was not added to session3
> The same sequence works as expected without transactions.
> I had to separate transactions 1 and 2 because JCR-1633 prevents node from being locked
in same tx in which it was created.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message