Index: oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/AbstractDocumentNodeState.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/AbstractDocumentNodeState.java (revision fae7968dcb64f4d0a9eb5a9497e12585ef28ae43) +++ oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/AbstractDocumentNodeState.java (date 1595575140063) @@ -83,7 +83,11 @@ // revision does not match: might still be equals } else if (that instanceof ModifiedNodeState) { ModifiedNodeState modified = (ModifiedNodeState) that; - if (modified.getBaseState() == this) { + NodeState baseState = modified.getBaseState(); + if (baseState instanceof ModifiedDocumentNodeState) { + baseState = ((ModifiedDocumentNodeState) baseState).getBaseState(); + } + if (baseState == this) { return EqualsDiff.equals(this, modified); } } Index: oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ModifiedDocumentNodeState.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ModifiedDocumentNodeState.java (revision fae7968dcb64f4d0a9eb5a9497e12585ef28ae43) +++ oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ModifiedDocumentNodeState.java (date 1595572756652) @@ -150,4 +150,8 @@ rv2 = rv2 != null ? rv2.asTrunkRevision() : null; return rv1 != null && rv1.equals(rv2); } + + public DocumentNodeState getBaseState() { + return base; + } }