You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by am...@apache.org on 2016/12/09 10:40:59 UTC
svn commit: r1773355 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java
test/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlobTest.java
Author: amitj
Date: Fri Dec 9 10:40:59 2016
New Revision: 1773355
URL: http://svn.apache.org/viewvc?rev=1773355&view=rev
Log:
Revert "OAK-5253: Optimize AbstractBlob#equal to not do content equals when possible"
This reverts commit e9c73447d95b8711be54024ff0050b481f84dba8.
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlobTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java?rev=1773355&r1=1773354&r2=1773355&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java Fri Dec 9 10:40:59 2016
@@ -57,11 +57,10 @@ public abstract class AbstractBlob imple
String ai = a.getContentIdentity();
String bi = b.getContentIdentity();
- //Check for identities not null. If not null then the identity check suffices to confirm
- // whether they are same blob or not as the identity is a content hash.
- // If any of the identities is null we need to check further.
- if (ai != null && bi != null) {
- return ai.equals(bi);
+ //Check for identity first. If they are same then its
+ //definitely same blob. If not we need to check further.
+ if (ai != null && bi != null && ai.equals(bi)){
+ return true;
}
try {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlobTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlobTest.java?rev=1773355&r1=1773354&r2=1773355&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlobTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlobTest.java Fri Dec 9 10:40:59 2016
@@ -37,35 +37,13 @@ public class AbstractBlobTest {
@Test
public void blobComparisonBasedOnContentIdentity() throws Exception {
byte[] data = bytes(100);
- // Same data same id
Blob a = new TestBlob(data, "id1", false);
Blob b = new TestBlob(data, "id1", false);
assertTrue(AbstractBlob.equal(a, b));
- // Same data diff ids (assumes that id is content hashed so takes a short cut)
- a = new TestBlob(data, "id1", false);
- b = new TestBlob(data, "id2", false);
- assertFalse("Blob with diff id but same content should not match",
- AbstractBlob.equal(a, b));
-
- // Diff data diff ids
- byte data2[] = bytes(100);
- Blob a2 = new TestBlob(data, "id1", false);
- Blob b2 = new TestBlob(data2, "id2", false);
- assertFalse("Blobs with different id and diff content should not match",
- AbstractBlob.equal(a2, b2));
-
- // 2nd id null
- Blob a3 = new TestBlob(data, "id1", true);
- Blob b3 = new TestBlob(data, null, true);
- assertTrue("Blobs with a null id but same content should match",
- AbstractBlob.equal(a3, b3));
-
- // 1st id null
- Blob a4 = new TestBlob(data, null, true);
- Blob b4 = new TestBlob(data, "id2", true);
- assertTrue("Blobs with a null id but same content should match",
- AbstractBlob.equal(a4, b4));
+ Blob a2 = new TestBlob(data, "id1", true);
+ Blob b2 = new TestBlob(data, "id2", true);
+ assertTrue("Blobs with different id but same content should match", AbstractBlob.equal(a2, b2));
}
@Test