[ 
https://issues.apache.org/jira/browse/HBASE-3808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13037487#comment-13037487
 ] 

Brock Noland commented on HBASE-3808:
-------------------------------------

@stack

Here is what I think you are looking for implemented for ServerShutdownHandler 
and ExecutorService$Executor. How far am I off track?

{noformat}
Index: 
src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java
===================================================================
--- 
src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java 
    (revision 1125781)
+++ 
src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java 
    (working copy)
@@ -88,6 +88,11 @@
   }
 
   @Override
+  public String toString() {
+         return getClass().getSimpleName() + "-" + server.getServerName();
+  }
+  
+  @Override
   public void process() throws IOException {
     final ServerName serverName = this.serverName;
 
Index: src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java 
(revision 1125781)
+++ src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java 
(working copy)
@@ -27,6 +27,7 @@
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -188,7 +189,7 @@
       List<Runnable> wasRunning =
         entry.getValue().threadPoolExecutor.shutdownNow();
       if (!wasRunning.isEmpty()) {
-        LOG.info(entry.getKey() + " had " + wasRunning + " on shutdown");
+        LOG.info(entry.getValue() + " had " + wasRunning + " on shutdown");
       }
     }
     this.executorMap.clear();
@@ -255,9 +256,12 @@
     final BlockingQueue<Runnable> q = new LinkedBlockingQueue<Runnable>();
     private final String name;
     private final Map<EventHandler.EventType, EventHandlerListener> 
eventHandlerListeners;
-
+    private static final AtomicLong seqids = new AtomicLong(0);
+    private final long id;
+    
     protected Executor(String name, int maxThreads,
         final Map<EventHandler.EventType, EventHandlerListener> 
eventHandlerListeners) {
+      this.id = seqids.incrementAndGet();
       this.name = name;
       this.eventHandlerListeners = eventHandlerListeners;
       // create the thread pool executor
@@ -283,5 +287,9 @@
       }
       this.threadPoolExecutor.execute(event);
     }
+    
+    public String toString() {
+       return getClass().getSimpleName() + "-" + id + "-" + name;
+    }
   }
 }
{noformat}


> Implement Executor.toString for master handlers at least
> --------------------------------------------------------
>
>                 Key: HBASE-3808
>                 URL: https://issues.apache.org/jira/browse/HBASE-3808
>             Project: HBase
>          Issue Type: Bug
>            Reporter: stack
>            Priority: Minor
>
> On shutdown, if still outstanding Executors queued then when ExecutorService 
> lists what is outstanding, the list will be other than a list of default 
> toString implementations of ServerShutdownHandler objects.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to