Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java (revision 3d2d0931ddeb1f7bf16f01b410f09eb33e5e5c1d) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java (revision ) @@ -473,8 +473,7 @@ } private class ConnectedHead extends Head { - protected long revision; - protected MutableNodeState state; + protected final MutableNodeState state; public ConnectedHead(MutableNodeState state) { this.state = state; @@ -482,13 +481,6 @@ @Override public Head update() { - if (revision != rootBuilder.baseRevision) { - // the root builder's base state has been reset: re-get - // state from parent. - MutableNodeState parentState = (MutableNodeState) parent.head().getCurrentNodeState(); - state = parentState.getMutableChildNode(name); - revision = rootBuilder.baseRevision; - } return this; } @@ -522,20 +514,16 @@ } private class RootHead extends ConnectedHead { + // ensure updating of child builders on first access + private long revision = 1; + public RootHead() { super(new MutableNodeState(base)); - // ensure updating of child builders on first access - revision = 1; } @Override - public Head update() { - return this; - } - - @Override public final void reset() { - state = new MutableNodeState(base); + state.reset(base); revision++; } }