AsyncDataTreeChangeListenerBase Thread with name of subclass 85/65285/3
authorMichael Vorburger <vorburger@redhat.com>
Tue, 7 Nov 2017 21:24:28 +0000 (22:24 +0100)
committerDavid Suarez <david.suarez.fuentes@gmail.com>
Tue, 14 Nov 2017 13:45:21 +0000 (13:45 +0000)
AsyncClusteredDataTreeChangeListenerBase the same

Change-Id: Id98ba50ce5e0571595d84efb6a6c0674ecec144c
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/datastoreutils/AsyncClusteredDataTreeChangeListenerBase.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/datastoreutils/AsyncDataTreeChangeListenerBase.java

index fbc6c2074db558351665097c11b9693618012d90..896223d70e5fc2debfdccd41717d907062c906d5 100644 (file)
@@ -41,19 +41,24 @@ public abstract class AsyncClusteredDataTreeChangeListenerBase
 
     private ListenerRegistration<K> listenerRegistration;
     private final ChainableDataTreeChangeListenerImpl<T> chainingDelegate = new ChainableDataTreeChangeListenerImpl<>();
-
-    private final ExecutorService dataTreeChangeHandlerExecutor =
-            Executors.newSingleThreadExecutor("AsyncClusteredDataTreeChangeListenerBase-DataTreeChangeHandler", LOG);
-
+    private final ExecutorService dataTreeChangeHandlerExecutor;
     protected final Class<T> clazz;
 
     protected AsyncClusteredDataTreeChangeListenerBase() {
         this.clazz = SuperTypeUtil.getTypeParameter(getClass(), 0);
+        this.dataTreeChangeHandlerExecutor = newThreadPoolExecutor(clazz);
     }
 
     @Deprecated
     public AsyncClusteredDataTreeChangeListenerBase(Class<T> clazz, Class<K> eventClazz) {
         this.clazz = Preconditions.checkNotNull(clazz, "Class can not be null!");
+        this.dataTreeChangeHandlerExecutor = newThreadPoolExecutor(clazz);
+    }
+
+    private static ExecutorService newThreadPoolExecutor(Class<?> clazz) {
+        return Executors.newSingleThreadExecutor(
+                // class name first so it shows up in logs' prefix, but fixed length
+                clazz.getName() + "_AsyncClusteredDataTreeChangeListenerBase-DataTreeChangeHandler", LOG);
     }
 
     @Override
index 7a7619b1f9a8e113976a8d5efed7c5b30cb928e1..6582207c4945f71d44b593fd93c531444566e30a 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.datastoreutils;
 
 import com.google.common.base.Preconditions;
@@ -40,18 +39,24 @@ public abstract class AsyncDataTreeChangeListenerBase<T extends DataObject, K ex
 
     private ListenerRegistration<K> listenerRegistration;
     private final ChainableDataTreeChangeListenerImpl<T> chainingDelegate = new ChainableDataTreeChangeListenerImpl<>();
-
-    private final ExecutorService dataTreeChangeHandlerExecutor =
-            Executors.newSingleThreadExecutor("AsyncDataTreeChangeListenerBase-DataTreeChangeHandler", LOG);
+    private final ExecutorService dataTreeChangeHandlerExecutor;
     protected final Class<T> clazz;
 
     protected AsyncDataTreeChangeListenerBase() {
         this.clazz = SuperTypeUtil.getTypeParameter(getClass(), 0);
+        this.dataTreeChangeHandlerExecutor = newThreadPoolExecutor(clazz);
     }
 
     @Deprecated
     public AsyncDataTreeChangeListenerBase(Class<T> clazz, Class<K> eventClazz) {
         this.clazz = Preconditions.checkNotNull(clazz, "Class can not be null!");
+        this.dataTreeChangeHandlerExecutor = newThreadPoolExecutor(clazz);
+    }
+
+    private static ExecutorService newThreadPoolExecutor(Class<?> clazz) {
+        return Executors.newSingleThreadExecutor(
+                // class name first so it shows up in logs' prefix, but fixed length
+                clazz.getName() + "_AsyncDataTreeChangeListenerBase-DataTreeChangeHandler", LOG);
     }
 
     @Override