Author: jukka
Date: Wed Oct 23 20:18:13 2013
New Revision: 1535156

URL: http://svn.apache.org/r1535156
Log:
OAK-1109: SegmentMK: failed to load segment

Fix comparisons of SegmentNodeStates coming from different SegmentStores

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

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java?rev=1535156&r1=1535155&r2=1535156&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
 Wed Oct 23 20:18:13 2013
@@ -283,9 +283,8 @@ public class SegmentNodeState extends Re
             SegmentNodeState that = (SegmentNodeState) base;
             return getRecordId().equals(that.getRecordId())
                 || getTemplate().compareAgainstBaseState(
-                        getSegment(), getRecordId(),
-                        that.getTemplate(), that.getRecordId(),
-                        diff);
+                        getSegment(), getRecordId(), that.getTemplate(),
+                        that.getSegment(), that.getRecordId(), diff);
         } else {
             // fallback
             return AbstractNodeState.compareAgainstBaseState(this, base, diff);

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Template.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Template.java?rev=1535156&r1=1535155&r2=1535156&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Template.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Template.java
 Wed Oct 23 20:18:13 2013
@@ -266,12 +266,13 @@ public class Template {
     }
 
     public boolean compareAgainstBaseState(
-            final Segment segment, RecordId afterId,
-            Template beforeTemplate, RecordId beforeId,
+            Segment afterSegment, RecordId afterId,
+            Template beforeTemplate, Segment beforeSegment, RecordId beforeId,
             final NodeStateDiff diff) {
-        checkNotNull(segment);
+        checkNotNull(afterSegment);
         checkNotNull(afterId);
         checkNotNull(beforeTemplate);
+        checkNotNull(beforeSegment);
         checkNotNull(beforeId);
         checkNotNull(diff);
 
@@ -281,9 +282,6 @@ public class Template {
             return false;
         }
 
-        final Segment afterSegment = segment.getSegment(afterId);
-        final Segment beforeSegment = segment.getSegment(beforeId);
-
         // Compare other properties, leveraging the ordering
         int beforeIndex = 0;
         int afterIndex = 0;
@@ -438,7 +436,6 @@ public class Template {
         if (childName == MANY_CHILD_NODES) {
             RecordId childNodesId = segment.readRecordId(offset);
             MapRecord children = segment.readMap(childNodesId);
-            final Segment s = segment;
             children.compareAgainstEmptyMap(new MapDiff() {
                 @Override
                 public boolean entryAdded(MapEntry after) {


Reply via email to