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 2013/03/11 16:14:38 UTC

svn commit: r1455172 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java

Author: mduerig
Date: Mon Mar 11 15:14:38 2013
New Revision: 1455172

URL: http://svn.apache.org/r1455172
Log:
OAK-691: Error while moving a node if the destination is not connected

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java?rev=1455172&r1=1455171&r2=1455172&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java Mon Mar 11 15:14:38 2013
@@ -440,19 +440,20 @@ public class TreeImpl implements Tree {
     /**
      * Move this tree to the parent at {@code destParent} with the new name
      * {@code destName}.
-     *
      * @param destParent new parent for this tree
      * @param destName   new name for this tree
      */
     void moveTo(TreeImpl destParent, String destName) {
         name = destName;
         parent = destParent;
-        if (parent.nodeBuilder.hasChildNode(name)) {
-            nodeBuilder = parent.nodeBuilder.child(name);
-        } else {
-            // make this builder disconnected from its new parent
-            nodeBuilder = parent.nodeBuilder.child(name);
-            parent.nodeBuilder.removeNode(name);
+        if (!parent.isDisconnected()) {
+            if (parent.nodeBuilder.hasChildNode(name)) {
+                nodeBuilder = parent.nodeBuilder.child(name);
+            } else {
+                // make this builder disconnected from its new parent
+                nodeBuilder = parent.nodeBuilder.child(name);
+                parent.nodeBuilder.removeNode(name);
+            }
         }
     }