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);
- }
}