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 st...@apache.org on 2016/04/01 12:26:00 UTC

svn commit: r1737342 - /jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java

Author: stefanegli
Date: Fri Apr  1 10:26:00 2016
New Revision: 1737342

URL: http://svn.apache.org/viewvc?rev=1737342&view=rev
Log:
OAK-4153 : further refinement of previous fix: calculation of beforeChildRemoved based on reusing already existing comparison, removed unnecessary and confusing else case, and put beforeChild to the start of this all to help improve readability - ie this is OAK-4153-3.patch

Modified:
    jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java

Modified: jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java?rev=1737342&r1=1737341&r2=1737342&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java Fri Apr  1 10:26:00 2016
@@ -555,33 +555,25 @@ public class SegmentNodeState extends Re
                 }
             }
         } else if (beforeChildName != Template.MANY_CHILD_NODES) {
-            boolean beforeChildStillExists = false;
+            boolean beforeChildRemoved = true;
+            NodeState beforeChild =
+                    beforeTemplate.getChildNode(beforeChildName, beforeId);
             for (ChildNodeEntry entry
                     : afterTemplate.getChildNodeEntries(afterId)) {
                 String childName = entry.getName();
-                beforeChildStillExists |= childName.equals(beforeChildName);
                 NodeState afterChild = entry.getNodeState();
                 if (beforeChildName.equals(childName)) {
-                    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;
-                        }
+                    beforeChildRemoved = false;
+                    if (!fastEquals(afterChild, beforeChild)
+                            && !diff.childNodeChanged(
+                                    childName, beforeChild, afterChild)) {
+                        return false;
                     }
                 } else if (!diff.childNodeAdded(childName, afterChild)) {
                     return false;
                 }
             }
-            if (!beforeChildStillExists) {
-                NodeState beforeChild =
-                        beforeTemplate.getChildNode(beforeChildName, beforeId);
+            if (beforeChildRemoved) {
                 if (!diff.childNodeDeleted(beforeChildName, beforeChild)) {
                     return false;
                 }