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) {