Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeBuilder.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeBuilder.java (revision 1633110) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeBuilder.java (working copy) @@ -47,6 +47,12 @@ this.writer = writer; } + SegmentNodeBuilder(SegmentNodeBuilder parent, String name, + SegmentWriter writer) { + super(parent, name); + this.writer = writer; + } + //-------------------------------------------------< MemoryNodeBuilder >-- @Override @@ -59,11 +65,11 @@ //-------------------------------------------------------< NodeBuilder >-- - @Override - public SegmentNodeState getBaseState() { - // guaranteed to be a SegmentNodeState - return (SegmentNodeState) super.getBaseState(); - } +// @Override +// public SegmentNodeState getBaseState() { +// // guaranteed to be a SegmentNodeState +// return (SegmentNodeState) super.getBaseState(); +// } @Override public SegmentNodeState getNodeState() { @@ -76,4 +82,9 @@ return sstate; } + @Override + protected MemoryNodeBuilder createChildBuilder(String name) { + return new SegmentNodeBuilder(this, name, writer); + } + } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStore.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStore.java (revision 1633110) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStore.java (working copy) @@ -162,7 +162,7 @@ SegmentNodeBuilder snb = (SegmentNodeBuilder) builder; NodeState root = getRoot(); - SegmentNodeState before = snb.getBaseState(); + NodeState before = snb.getBaseState(); if (!fastEquals(before, root)) { SegmentNodeState after = snb.getNodeState(); snb.reset(root); @@ -307,7 +307,7 @@ private final Random random = new Random(); - private SegmentNodeState before; + private NodeState before; private SegmentNodeState after; @@ -326,7 +326,7 @@ } private boolean setHead(SegmentNodeBuilder builder) { - SegmentNodeState before = builder.getBaseState(); + SegmentNodeState before = (SegmentNodeState) builder.getBaseState(); SegmentNodeState after = builder.getNodeState(); refreshHead();