You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by cl...@apache.org on 2007/05/13 21:04:38 UTC
svn commit: r537641 - in
/jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src:
main/java/org/apache/jackrabbit/ocm/persistence/impl/
test/java/org/apache/jackrabbit/ocm/persistence/lock/
Author: clombart
Date: Sun May 13 12:04:37 2007
New Revision: 537641
URL: http://svn.apache.org/viewvc?view=rev&rev=537641
Log:
Bug fix for JCR-909. Now, we check if the lock owner is the current session user.
Modify unit test for locks
Modified:
jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src/main/java/org/apache/jackrabbit/ocm/persistence/impl/PersistenceManagerImpl.java
jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src/test/java/org/apache/jackrabbit/ocm/persistence/lock/PersistenceManagerLockTest.java
Modified: jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src/main/java/org/apache/jackrabbit/ocm/persistence/impl/PersistenceManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src/main/java/org/apache/jackrabbit/ocm/persistence/impl/PersistenceManagerImpl.java?view=diff&rev=537641&r1=537640&r2=537641
==============================================================================
--- jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src/main/java/org/apache/jackrabbit/ocm/persistence/impl/PersistenceManagerImpl.java (original)
+++ jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src/main/java/org/apache/jackrabbit/ocm/persistence/impl/PersistenceManagerImpl.java Sun May 13 12:04:37 2007
@@ -1000,8 +1000,12 @@
if (node.isLocked()) {
Lock lock = node.getLock();
String lockOwner = lock.getLockOwner();
- final String path = lock.getNode().getPath();
- throw new LockedException(lockOwner, path);
+
+ if (! session.getUserID().equals(lockOwner))
+ {
+ final String path = lock.getNode().getPath();
+ throw new LockedException(lockOwner, path);
+ }
}
}
Modified: jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src/test/java/org/apache/jackrabbit/ocm/persistence/lock/PersistenceManagerLockTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src/test/java/org/apache/jackrabbit/ocm/persistence/lock/PersistenceManagerLockTest.java?view=diff&rev=537641&r1=537640&r2=537641
==============================================================================
--- jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src/test/java/org/apache/jackrabbit/ocm/persistence/lock/PersistenceManagerLockTest.java (original)
+++ jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/src/test/java/org/apache/jackrabbit/ocm/persistence/lock/PersistenceManagerLockTest.java Sun May 13 12:04:37 2007
@@ -139,6 +139,17 @@
// Check if the object is locked
// --------------------------------------------------------------------------------
assertFalse("the object is locked", persistenceManager.isLocked("/test"));
+
+ // --------------------------------------------------------------------------------
+ // Lock & update
+ // --------------------------------------------------------------------------------
+ lockToken = persistenceManager.lock("/test", true, false);
+ a = (A) persistenceManager.getObject("/test");
+ a.setA1("new a1 Value");
+ persistenceManager.update(a);
+ persistenceManager.save();
+ persistenceManager.unlock("/test", lockToken);
+
// --------------------------------------------------------------------------------
// Remove the object