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