You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2009/04/06 16:43:04 UTC

svn commit: r762364 - in /jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src: main/java/org/apache/jackrabbit/rmi/client/ main/java/org/apache/jackrabbit/rmi/remote/ main/java/org/apache/jackrabbit/rmi/server/ test/java/org/apache/jackrabbit/test/rmi/

Author: jukka
Date: Mon Apr  6 14:43:04 2009
New Revision: 762364

URL: http://svn.apache.org/viewvc?rev=762364&view=rev
Log:
JCRRMI-17: Multiple TCK test failures

Lock.getNode() needs to return the locked node, not the node on which getLock() was called.

Modified:
    jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientAdapterFactory.java
    jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientLock.java
    jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientNode.java
    jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/LocalAdapterFactory.java
    jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/remote/RemoteLock.java
    jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java
    jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/ServerLock.java
    jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/test/java/org/apache/jackrabbit/test/rmi/RemoteAdapterTest.java

Modified: jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientAdapterFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientAdapterFactory.java?rev=762364&r1=762363&r2=762364&view=diff
==============================================================================
--- jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientAdapterFactory.java (original)
+++ jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientAdapterFactory.java Mon Apr  6 14:43:04 2009
@@ -237,8 +237,8 @@
      *
      * {@inheritDoc}
      */
-    public Lock getLock(Node node, RemoteLock remote) {
-        return new ClientLock(node, remote);
+    public Lock getLock(Session session, Node node, RemoteLock remote) {
+        return new ClientLock(session, remote, this);
     }
 
     /**

Modified: jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientLock.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientLock.java?rev=762364&r1=762363&r2=762364&view=diff
==============================================================================
--- jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientLock.java (original)
+++ jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientLock.java Mon Apr  6 14:43:04 2009
@@ -20,6 +20,7 @@
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
+import javax.jcr.Session;
 import javax.jcr.lock.Lock;
 
 import org.apache.jackrabbit.rmi.remote.RemoteLock;
@@ -33,10 +34,10 @@
  * @see javax.jcr.lock.Lock
  * @see org.apache.jackrabbit.rmi.remote.RemoteLock
  */
-public class ClientLock implements Lock {
+public class ClientLock extends ClientObject implements Lock {
 
-    /** The current node. */
-    private Node node;
+    /** Current session. */
+    private Session session;
 
     /** The adapted remote lock. */
     private RemoteLock remote;
@@ -44,21 +45,25 @@
     /**
      * Creates a local adapter for the given remote lock.
      *
-     * @param node current node
+     * @param session current session
      * @param remote remote lock
+     * @param factory local adapter factory
      */
-    public ClientLock(Node node, RemoteLock remote) {
-        this.node = node;
+    public ClientLock(Session session, RemoteLock remote, LocalAdapterFactory factory) {
+        super(factory);
+        this.session = session;
         this.remote = remote;
     }
 
-    /**
-     * Returns the owning node without contacting the remote lock.
-     *
-     * {@inheritDoc}
-     */
+    /** {@inheritDoc} */
     public Node getNode() {
-        return node;
+        try {
+            return getNode(session, remote.getNode());
+        } catch (RemoteException e) {
+            throw new RemoteRuntimeException(e);
+        } catch (RepositoryException e) {
+            throw new RuntimeException(e);
+        }
     }
 
     /** {@inheritDoc} */

Modified: jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientNode.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientNode.java?rev=762364&r1=762363&r2=762364&view=diff
==============================================================================
--- jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientNode.java (original)
+++ jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientNode.java Mon Apr  6 14:43:04 2009
@@ -615,7 +615,7 @@
             throws RepositoryException {
         try {
             RemoteLock lock = remote.lock(isDeep, isSessionScoped);
-            return getFactory().getLock(this, lock);
+            return getFactory().getLock(getSession(), this, lock);
         } catch (RemoteException ex) {
             throw new RemoteRepositoryException(ex);
         }
@@ -624,7 +624,7 @@
     /** {@inheritDoc} */
     public Lock getLock() throws RepositoryException {
         try {
-            return getFactory().getLock(this, remote.getLock());
+            return getFactory().getLock(getSession(), this, remote.getLock());
         } catch (RemoteException ex) {
             throw new RemoteRepositoryException(ex);
         }

Modified: jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/LocalAdapterFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/LocalAdapterFactory.java?rev=762364&r1=762363&r2=762364&view=diff
==============================================================================
--- jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/LocalAdapterFactory.java (original)
+++ jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/LocalAdapterFactory.java Mon Apr  6 14:43:04 2009
@@ -234,11 +234,12 @@
     /**
      * Factory method for creating a local adapter for a remote lock.
      *
+     * @param session current session
      * @param node current node
      * @param remote remote lock
      * @return local lock adapter
      */
-    Lock getLock(Node node, RemoteLock remote);
+    Lock getLock(Session session, Node node, RemoteLock remote);
 
     /**
      * Factory method for creating a local adapter for a remote query manager.

Modified: jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/remote/RemoteLock.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/remote/RemoteLock.java?rev=762364&r1=762363&r2=762364&view=diff
==============================================================================
--- jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/remote/RemoteLock.java (original)
+++ jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/remote/RemoteLock.java Mon Apr  6 14:43:04 2009
@@ -41,6 +41,17 @@
 
     /**
      * Remote version of the
+     * {@link javax.jcr.lock.Lock#getNode() Lock.getNode()} method.
+     *
+     * @return remote node
+     * @throws RepositoryException on repository errors
+     * @throws RemoteException on RMI errors
+     * @since JCR-RMI 2.0
+     */
+    RemoteNode getNode() throws RepositoryException, RemoteException;
+
+    /**
+     * Remote version of the
      * {@link javax.jcr.lock.Lock#getLockOwner() Lock.getLockOwner()} method.
      *
      * @return lock owner

Modified: jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java?rev=762364&r1=762363&r2=762364&view=diff
==============================================================================
--- jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java (original)
+++ jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java Mon Apr  6 14:43:04 2009
@@ -295,7 +295,7 @@
      * {@inheritDoc}
      */
     public RemoteLock getRemoteLock(Lock lock) throws RemoteException {
-        return new ServerLock(lock);
+        return new ServerLock(lock, this);
     }
 
     /**

Modified: jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/ServerLock.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/ServerLock.java?rev=762364&r1=762363&r2=762364&view=diff
==============================================================================
--- jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/ServerLock.java (original)
+++ jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/server/ServerLock.java Mon Apr  6 14:43:04 2009
@@ -23,6 +23,7 @@
 import javax.jcr.lock.Lock;
 
 import org.apache.jackrabbit.rmi.remote.RemoteLock;
+import org.apache.jackrabbit.rmi.remote.RemoteNode;
 
 /**
  * Remote adapter for the JCR {@link javax.jcr.lock.Lock Lock} interface.
@@ -33,7 +34,7 @@
  * @see javax.jcr.lock.Lock
  * @see org.apache.jackrabbit.rmi.remote.RemoteLock
  */
-public class ServerLock extends UnicastRemoteObject implements RemoteLock {
+public class ServerLock extends ServerObject implements RemoteLock {
 
     /** The adapted local lock. */
     private Lock lock;
@@ -44,11 +45,18 @@
      * @param lock local lock
      * @throws RemoteException on RMI errors
      */
-    public ServerLock(Lock lock) throws RemoteException {
+    public ServerLock(Lock lock, RemoteAdapterFactory factory)
+            throws RemoteException {
+        super(factory);
         this.lock = lock;
     }
 
     /** {@inheritDoc} */
+    public RemoteNode getNode() throws RemoteException {
+        return getRemoteNode(lock.getNode());
+    }
+
+    /** {@inheritDoc} */
     public String getLockOwner() throws RemoteException {
         return lock.getLockOwner();
     }

Modified: jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/test/java/org/apache/jackrabbit/test/rmi/RemoteAdapterTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/test/java/org/apache/jackrabbit/test/rmi/RemoteAdapterTest.java?rev=762364&r1=762363&r2=762364&view=diff
==============================================================================
--- jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/test/java/org/apache/jackrabbit/test/rmi/RemoteAdapterTest.java (original)
+++ jackrabbit/commons/jcr-rmi/trunk/jcr-rmi/src/test/java/org/apache/jackrabbit/test/rmi/RemoteAdapterTest.java Mon Apr  6 14:43:04 2009
@@ -308,7 +308,7 @@
 
         Lock lock = (Lock) mock;
         RemoteLock remote = remoteFactory.getRemoteLock(lock);
-        Lock local = localFactory.getLock(null, remote);
+        Lock local = localFactory.getLock(null, null, remote);
 
         runTests(local);
     }