You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2012/08/20 15:29:17 UTC

svn commit: r1375012 - /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java

Author: mduerig
Date: Mon Aug 20 13:29:17 2012
New Revision: 1375012

URL: http://svn.apache.org/viewvc?rev=1375012&view=rev
Log:
OAK-258: Dummy implementation for session scoped locks
Thanks Chetan Mehrotra for the patch

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java?rev=1375012&r1=1375011&r2=1375012&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java Mon Aug 20 13:29:17 2012
@@ -71,6 +71,7 @@ import org.apache.jackrabbit.oak.commons
 import org.apache.jackrabbit.oak.core.DefaultConflictHandler;
 import org.apache.jackrabbit.oak.jcr.value.ValueConverter;
 import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager;
+import org.apache.jackrabbit.oak.util.TODO;
 import org.apache.jackrabbit.value.ValueHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -1212,9 +1213,9 @@ public class NodeImpl extends ItemImpl<N
      */
     @Override
     @Nonnull
-    public Lock lock(boolean isDeep, boolean isSessionScoped)
+    public Lock lock(final boolean isDeep, boolean isSessionScoped)
             throws RepositoryException {
-        String userID = getSession().getUserID();
+        final String userID = getSession().getUserID();
 
         String lockOwner = sessionDelegate.getOakPathOrThrow(JCR_LOCK_OWNER);
         String lockIsDeep = sessionDelegate.getOakPathOrThrow(JCR_LOCK_IS_DEEP);
@@ -1234,6 +1235,55 @@ public class NodeImpl extends ItemImpl<N
         }
 
         getSession().refresh(true);
+
+        if (isSessionScoped) {
+            return TODO.dummyImplementation().returnValue(new Lock() {
+                @Override
+                public String getLockOwner() {
+                    return userID;
+                }
+
+                @Override
+                public boolean isDeep() {
+                    return isDeep;
+                }
+
+                @Override
+                public Node getNode() {
+                    return NodeImpl.this;
+                }
+
+                @Override
+                public String getLockToken() {
+                    return null;
+                }
+
+                @Override
+                public long getSecondsRemaining() {
+                    return Long.MAX_VALUE;
+                }
+
+                @Override
+                public boolean isLive() {
+                    return true;
+                }
+
+                @Override
+                public boolean isSessionScoped() {
+                    return true;
+                }
+
+                @Override
+                public boolean isLockOwningSession() {
+                    return true;
+                }
+
+                @Override
+                public void refresh() {
+                }
+            });
+        }
+
         return getLock();
     }