Author: mduerig
Date: Thu Mar 20 13:02:38 2014
New Revision: 1579613

URL: http://svn.apache.org/r1579613
Log:
OAK-1560: Expose RevisionGCMBean for supported NodeStores
Only require an Executor instead of an ExecutorService in the constructor of 
RevisionGC

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java?rev=1579613&r1=1579612&r2=1579613&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java
 Thu Mar 20 13:02:38 2014
@@ -23,8 +23,9 @@ import static com.google.common.base.Pre
 
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
+import java.util.concurrent.Executor;
+import java.util.concurrent.FutureTask;
+import java.util.concurrent.RunnableFuture;
 import java.util.concurrent.TimeUnit;
 
 import javax.annotation.Nonnull;
@@ -39,20 +40,19 @@ public class RevisionGC implements Revis
     private static final Logger log = 
LoggerFactory.getLogger(RevisionGC.class);
 
     private final Runnable gc;
-    private final ExecutorService executorService;
+    private final Executor executor;
 
-    private Future<Long> gcOp;
+    private RunnableFuture<Long> gcOp;
 
     /**
      * @param gc               Revision garbage collector
-     * @param executorService  executor service for running the garbage 
collection task
-     *                         in the background.
+     * @param executor         executor for running the garbage collection task
      */
     public RevisionGC(
             @Nonnull Runnable gc,
-            @Nonnull ExecutorService executorService) {
+            @Nonnull Executor executor) {
         this.gc = checkNotNull(gc);
-        this.executorService = checkNotNull(executorService);
+        this.executor = checkNotNull(executor);
     }
 
 
@@ -62,7 +62,7 @@ public class RevisionGC implements Revis
         if (gcOp != null && !gcOp.isDone()) {
             return "Garbage collection already running";
         } else {
-            gcOp = executorService.submit(new Callable<Long>() {
+            gcOp = new FutureTask<Long>(new Callable<Long>() {
                 @Override
                 public Long call() throws Exception {
                     long t0 = System.nanoTime();
@@ -70,6 +70,7 @@ public class RevisionGC implements Revis
                     return System.nanoTime() - t0;
                 }
             });
+            executor.execute(gcOp);
             return getRevisionGCStatus();
         }
     }


Reply via email to