You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/05/12 19:56:31 UTC

svn commit: r774002 - in /incubator/cassandra/trunk/src/java/org/apache/cassandra: concurrent/DebuggableThreadPoolExecutor.java db/Memtable.java

Author: jbellis
Date: Tue May 12 17:56:31 2009
New Revision: 774002

URL: http://svn.apache.org/viewvc?rev=774002&view=rev
Log:
unregister mbean on flush.  patch by daishi; reviewed by jbellis for CASSANDRA-157

Modified:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java?rev=774002&r1=774001&r2=774002&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java Tue May 12 17:56:31 2009
@@ -38,6 +38,7 @@
 {
     private static Logger logger_ = Logger.getLogger(DebuggableThreadPoolExecutor.class);
 
+    private ObjectName objName;
     public DebuggableThreadPoolExecutor(String threadPoolName) 
     {
         this(1, 1, Integer.MAX_VALUE, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new ThreadFactoryImpl(threadPoolName));
@@ -55,7 +56,21 @@
         MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
         try
         {
-            mbs.registerMBean(this, new ObjectName("org.apache.cassandra.concurrent:type=" + threadFactory.id_));
+            objName = new ObjectName("org.apache.cassandra.concurrent:type=" + threadFactory.id_);
+            mbs.registerMBean(this, objName);
+        }
+        catch (Exception e)
+        {
+            throw new RuntimeException(e);
+        }
+    }
+    
+    public void unregisterMBean()
+    {
+        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+        try
+        {
+            mbs.unregisterMBean(objName);
         }
         catch (Exception e)
         {

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java?rev=774002&r1=774001&r2=774002&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java Tue May 12 17:56:31 2009
@@ -384,6 +384,7 @@
             {
                 flushQueuer.run();
             }
+            this.unregisterMBean();
         }
 
         public void flushWhenTerminated(final CommitLog.CommitLogContext cLogCtx)