Index: oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java (date 1365151134000) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java (date 1365155419000) @@ -18,12 +18,19 @@ */ package org.apache.jackrabbit.oak.core; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; +import static org.apache.jackrabbit.oak.commons.PathUtils.elements; +import static org.apache.jackrabbit.oak.commons.PathUtils.getName; +import static org.apache.jackrabbit.oak.commons.PathUtils.getParentPath; + import java.io.IOException; import java.io.InputStream; import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.Collections; import java.util.List; + import javax.annotation.Nonnull; import javax.security.auth.Subject; @@ -60,12 +67,6 @@ import org.apache.jackrabbit.oak.spi.state.NodeStoreBranch; import org.apache.jackrabbit.oak.spi.state.SecureNodeState; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static org.apache.jackrabbit.oak.commons.PathUtils.elements; -import static org.apache.jackrabbit.oak.commons.PathUtils.getName; -import static org.apache.jackrabbit.oak.commons.PathUtils.getParentPath; - public class RootImpl implements Root { /** @@ -242,7 +243,7 @@ if (!store.getRoot().equals(rootTree.getBaseState())) { purgePendingChanges(); branch.rebase(); - rootTree.reset(branch.getHead()); + rootTree.reset(getSecureHead()); permissionProvider = null; } } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java (date 1365151134000) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java (date 1365155419000) @@ -63,6 +63,7 @@ import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.jackrabbit.oak.spi.state.NodeStateDiff; +import org.apache.jackrabbit.oak.spi.state.SecureNodeState; /** * Basic {@link NodeState} implementation based on the {@link MicroKernel} @@ -369,6 +370,10 @@ */ @Override public boolean equals(Object object) { + if (object instanceof SecureNodeState) { + return object.equals(this); + } + if (this == object) { return true; } else if (object instanceof KernelNodeState) { Index: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/SecureNodeState.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/SecureNodeState.java (date 1365151134000) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/SecureNodeState.java (date 1365155419000) @@ -206,4 +206,9 @@ } } } + + @Override + public boolean equals(Object obj) { + return getBaseState().equals(obj); + } }