Bug 6472 - JsonRpcEndpoint Reaper Thread's daemon property is not set 40/44340/1
authorAnil Vishnoi <vishnoianil@gmail.com>
Thu, 18 Aug 2016 23:23:47 +0000 (16:23 -0700)
committerAnil Vishnoi <vishnoianil@gmail.com>
Thu, 18 Aug 2016 23:23:47 +0000 (16:23 -0700)
Change-Id: I0cfd2a192eed62eab988831398f8f8e89876417e
Signed-off-by: Anil Vishnoi <vishnoianil@gmail.com>
library/impl/src/main/java/org/opendaylight/ovsdb/lib/impl/OvsdbConnectionService.java
library/impl/src/main/java/org/opendaylight/ovsdb/lib/jsonrpc/JsonRpcEndpoint.java

index a8c380470f900a7109d0ff8fe02acd6f2eedd056..4ce17fa0813c757535da2bfe893336db29ecdc46 100644 (file)
@@ -461,6 +461,7 @@ public class OvsdbConnectionService implements AutoCloseable, OvsdbConnection {
     @Override
     public void close() throws Exception {
         LOG.info("OvsdbConnectionService closed");
+        JsonRpcEndpoint.close();
     }
 
     @Override
index ad8f078aa69eb2b76f9e3c22e750363ae796f7ec..ad162a9e3d692a458205c1ef87bc970e9bc4a7de 100644 (file)
@@ -21,6 +21,7 @@ import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.SettableFuture;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import io.netty.channel.Channel;
+
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -43,7 +44,8 @@ public class JsonRpcEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(JsonRpcEndpoint.class);
     private static final int REAPER_THREADS = 3;
     private static final ThreadFactory FUTURE_REAPER_THREAD_FACTORY = new ThreadFactoryBuilder()
-            .setNameFormat("OVSDB-Lib-Future-Reaper-%d").build();
+            .setNameFormat("OVSDB-Lib-Future-Reaper-%d")
+            .setDaemon(true).build();
     private static final ScheduledExecutorService FUTURE_REAPER_SERVICE
             = Executors.newScheduledThreadPool(REAPER_THREADS, FUTURE_REAPER_THREAD_FACTORY);
 
@@ -235,4 +237,9 @@ public class JsonRpcEndpoint {
         reaperInterval = interval;
         LOG.info("Ovsdb Rpc Task interval is set to {} millisecond", reaperInterval);
     }
+
+    public static void close() {
+        LOG.info("Shutting down reaper executor service");
+        FUTURE_REAPER_SERVICE.shutdownNow();
+    }
 }