Author: amitj
Date: Wed Dec  7 06:55:04 2016
New Revision: 1773015

URL: http://svn.apache.org/viewvc?rev=1773015&view=rev
Log:
OAK-5231: Proper resource cleanup in BlobTrackerTest

Closing objects and scheduler executor properly

Modified:
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTrackerTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTrackerTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTrackerTest.java?rev=1773015&r1=1773014&r2=1773015&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTrackerTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTrackerTest.java
 Wed Dec  7 06:55:04 2016
@@ -29,6 +29,7 @@ import java.util.concurrent.ScheduledExe
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
+import com.google.common.io.Closer;
 import org.apache.jackrabbit.core.data.DataRecord;
 import org.apache.jackrabbit.core.data.DataStoreException;
 import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
@@ -65,6 +66,7 @@ public class BlobIdTrackerTest {
     File root;
     SharedDataStore dataStore;
     BlobIdTracker tracker;
+    Closer closer = Closer.create();
 
     @Rule
     public TemporaryFolder folder = new TemporaryFolder(new File("target"));
@@ -89,13 +91,13 @@ public class BlobIdTrackerTest {
         this.repoId = randomUUID().toString();
         this.tracker = new BlobIdTracker(root.getAbsolutePath(), repoId, 100 * 
60, dataStore);
         this.scheduler = newSingleThreadScheduledExecutor();
+        closer.register(tracker);
+        closer.register(new ExecutorCloser(scheduler));
     }
 
     @After
     public void tearDown() throws IOException {
-        tracker.close();
-        new ExecutorCloser(scheduler).close();
-        folder.delete();
+        closer.close();
     }
 
     @Test
@@ -127,8 +129,13 @@ public class BlobIdTrackerTest {
     @Test
     public void snapshotRetrieveIgnored() throws Exception {
         System.setProperty("oak.datastore.skipTracker", "true");
+
+        // Close and open a new object to use the system property
+        closer.close();
         this.tracker = new BlobIdTracker(root.getAbsolutePath(), repoId, 100 * 
60, dataStore);
         this.scheduler = newSingleThreadScheduledExecutor();
+        closer.register(tracker);
+        closer.register(new ExecutorCloser(scheduler));
 
         try {
             Set<String> initAdd = add(tracker, range(0, 10000));
@@ -145,8 +152,6 @@ public class BlobIdTrackerTest {
         } finally {
             //reset the skip tracker system prop
             System.clearProperty("oak.datastore.skipTracker");
-            this.tracker = new BlobIdTracker(root.getAbsolutePath(), repoId, 
100 * 60, dataStore);
-            this.scheduler = newSingleThreadScheduledExecutor();
         }
     }
 


Reply via email to