diff --git oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java index 9304d9c..3e3708c 100644 --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java @@ -50,14 +50,20 @@ public abstract class AbstractBlob implements Blob { // shortcut: first compare lengths if known in advance long al = a.length(); long bl = b.length(); if (al != -1 && bl != -1 && al != bl) { return false; // blobs not equal, given known and non-equal lengths } + final String referenceA = a.getReference(); + final String referenceB = b.getReference(); + if (referenceA != null && referenceB != null) { + return referenceA.equals(referenceB); + } + try { return ByteStreams.equal(supplier(a), supplier(b)); } catch (IOException e) { throw new IllegalStateException("Blob equality check failed", e); } }