Author: reschke
Date: Wed Apr 13 15:36:07 2016
New Revision: 1738957

URL: http://svn.apache.org/viewvc?rev=1738957&view=rev
Log:
OAK-4199: RDBBlobStore: garbage collection fails to delete DATA records when 
there was subsequent blobstore activity

Enable new test case and fix SQL statement.

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/RDBBlobStoreTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java?rev=1738957&r1=1738956&r2=1738957&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
 Wed Apr 13 15:36:07 2016
@@ -518,8 +518,10 @@ public class RDBBlobStore extends Cachin
                 if (maxLastModifiedTime > 0) {
                     // delete only if the last modified is OLDER than x
                     metaStatement.append(" and LASTMOD <= ?");
-                    // delete if there is NO entry where the last modified of 
the meta is YOUNGER than x
-                    dataStatement.append(" and not exists(select * from " + 
this.tnMeta + " m where ID = m.ID and m.LASTMOD > ?)");
+                    // delete if there is NO entry where the last modified of
+                    // the meta is YOUNGER than x
+                    dataStatement.append(" and not exists(select * from " + 
this.tnMeta + " where " + this.tnMeta + ".ID = "
+                            + this.tnData + ".ID and LASTMOD > ?)");
                 }
 
                 prepMeta = con.prepareStatement(metaStatement.toString());

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/RDBBlobStoreTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/RDBBlobStoreTest.java?rev=1738957&r1=1738956&r2=1738957&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/RDBBlobStoreTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/RDBBlobStoreTest.java
 Wed Apr 13 15:36:07 2016
@@ -36,7 +36,6 @@ import org.apache.jackrabbit.oak.spi.blo
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -192,7 +191,6 @@ public class RDBBlobStoreTest extends Ab
         
Assert.assertNotNull(RDBBlobStoreFriend.readBlockFromBackend(blobStore, 
digest));
     }
 
-    @Ignore("OAK-4199")
     @Test
     public void testDeleteChunks() throws Exception {
         byte[] data1 = new byte[256];


Reply via email to