Author: stefanegli
Date: Thu Apr  7 15:04:25 2016
New Revision: 1738139

URL: http://svn.apache.org/viewvc?rev=1738139&view=rev
Log:
OAK-4153 : reverting fix temporarily to allow for more test coverage of the fix 
in trunk

Modified:
    
jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
    
jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompareAgainstBaseStateTest.java

Modified: 
jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java?rev=1738139&r1=1738138&r2=1738139&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
 (original)
+++ 
jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
 Thu Apr  7 15:04:25 2016
@@ -555,29 +555,28 @@ public class SegmentNodeState extends Re
                 }
             }
         } else if (beforeChildName != Template.MANY_CHILD_NODES) {
-            boolean beforeChildRemoved = true;
-            NodeState beforeChild =
-                    beforeTemplate.getChildNode(beforeChildName, beforeId);
             for (ChildNodeEntry entry
                     : afterTemplate.getChildNodeEntries(afterId)) {
                 String childName = entry.getName();
                 NodeState afterChild = entry.getNodeState();
                 if (beforeChildName.equals(childName)) {
-                    beforeChildRemoved = false;
-                    if (!fastEquals(afterChild, beforeChild)
-                            && !diff.childNodeChanged(
-                                    childName, beforeChild, afterChild)) {
-                        return false;
+                    NodeState beforeChild =
+                            beforeTemplate.getChildNode(beforeChildName, 
beforeId);
+                    if (beforeChild.exists()) {
+                        if (!fastEquals(afterChild, beforeChild)
+                                && !diff.childNodeChanged(
+                                        childName, beforeChild, afterChild)) {
+                            return false;
+                        }
+                    } else {
+                        if (!diff.childNodeAdded(childName, afterChild)) {
+                            return false;
+                        }
                     }
                 } else if (!diff.childNodeAdded(childName, afterChild)) {
                     return false;
                 }
             }
-            if (beforeChildRemoved) {
-                if (!diff.childNodeDeleted(beforeChildName, beforeChild)) {
-                    return false;
-                }
-            }
         } else {
             MapRecord afterMap = afterTemplate.getChildNodeMap(afterId);
             MapRecord beforeMap = beforeTemplate.getChildNodeMap(beforeId);

Modified: 
jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompareAgainstBaseStateTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompareAgainstBaseStateTest.java?rev=1738139&r1=1738138&r2=1738139&view=diff
==============================================================================
--- 
jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompareAgainstBaseStateTest.java
 (original)
+++ 
jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompareAgainstBaseStateTest.java
 Thu Apr  7 15:04:25 2016
@@ -152,20 +152,4 @@ public class CompareAgainstBaseStateTest
         verify(diff);
     }
 
-    @Test
-    public void testChildNodeDeletedAndMultipleAdded() {
-        NodeState before = builder.getNodeState();
-        builder.getChildNode("baz").remove();
-        builder.child("x");
-        builder.child("y");
-        NodeState after = builder.getNodeState();
-
-        expect(diff.childNodeDeleted("baz", 
before.getChildNode("baz"))).andReturn(true);
-        expect(diff.childNodeAdded("x", 
after.getChildNode("x"))).andReturn(true);
-        expect(diff.childNodeAdded("y", 
after.getChildNode("x"))).andReturn(true);
-        replay(diff);
-
-        after.compareAgainstBaseState(before, diff);
-        verify(diff);
-    }
 }


Reply via email to