jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominique Pfister (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (JCR-284) Locking two same-name siblings and unlocking first apparently unlocks second instead.
Date Wed, 30 Nov 2005 17:06:31 GMT
     [ http://issues.apache.org/jira/browse/JCR-284?page=all ]
     
Dominique Pfister resolved JCR-284:
-----------------------------------

    Fix Version: 1.1
     Resolution: Fixed

LockManager internally removed the unlocked first sibling from its path map and shifted follower
indices which is obviously wrong. Thanks to Roland Kofler for reporting this issue.

Fixed in revision 349986. 

> Locking two same-name siblings and unlocking first apparently unlocks second instead.
> -------------------------------------------------------------------------------------
>
>          Key: JCR-284
>          URL: http://issues.apache.org/jira/browse/JCR-284
>      Project: Jackrabbit
>         Type: Bug
>   Components: locks
>     Versions: 1.1
>     Reporter: Dominique Pfister
>     Assignee: Dominique Pfister
>      Fix For: 1.1

>
> Executing the following test that unlocks the first of two locked same-name siblings:
> public void testLocking() throws RepositoryException {
>        Session jcrSession = ((S1SessionImpl) session).getSession();
>        Node rootNode = jcrSession.getRootNode();
>        Node n1 = rootNode.addNode("path");
>        n1.addMixin("mix:lockable");
>        Node n2 = rootNode.addNode("path");
>        n2.addMixin("mix:lockable");
>        jcrSession.save();
>        n1.lock(true, true);
>        n2.lock(true, true);
>        System.out.println("n1.isLocked() = " + n1.isLocked());
>        System.out.println("n2.isLocked() = " + n2.isLocked());
>        assertTrue(n1.isLocked());
>        assertTrue(n2.isLocked());
>        n1.save();
>        n1.unlock();
>        System.out.println("n1.isLocked() = " + n1.isLocked());
>        System.out.println("n2.isLocked() = " + n2.isLocked());
>        assertFalse(n1.isLocked());
>        assertTrue(n2.isLocked());
>    }
> Results in:
> n1.isLocked() = true
> n2.isLocked() = true
> n1.isLocked() = true
> n2.isLocked() = false
> which is wrong.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message