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/05/29 16:37:00 UTC

svn commit: r1487502 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java

Author: mduerig
Date: Wed May 29 14:37:00 2013
New Revision: 1487502

URL: http://svn.apache.org/r1487502
Log:
OAK-781: Clarify / fix effects of MISSING_NODE as base state of NodeBuilder
Transition back to unconnected on reset and connect again if necessary

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java?rev=1487502&r1=1487501&r2=1487502&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java Wed May 29 14:37:00 2013
@@ -473,7 +473,7 @@ public class MemoryNodeBuilder implement
     }
 
     private class ConnectedHead extends Head {
-        protected long revision;
+        protected long revision = rootBuilder.baseRevision;
         protected MutableNodeState state;
 
         public ConnectedHead(MutableNodeState state) {
@@ -483,11 +483,9 @@ public class MemoryNodeBuilder implement
         @Override
         public Head update() {
             if (revision != rootBuilder.baseRevision) {
-                // the root builder's base state has been reset: re-get
-                // state from parent.
-                MutableNodeState parentState = (MutableNodeState) parent.head().getCurrentNodeState();
-                state = parentState.getMutableChildNode(name);
-                revision = rootBuilder.baseRevision;
+                // the root builder's base state has been reset: transition back
+                // to unconnected and connect again if necessary.
+                return new UnconnectedHead().update();
             }
             return this;
         }