Author: gdusbabek
Date: Tue Aug  3 20:13:27 2010
New Revision: 982023

URL: http://svn.apache.org/viewvc?rev=982023&view=rev
Log:
unregister CF mbean when a CF is dropped. patch by gdusbabek, reviewed by 
jbellis. CASSANDRA-1334

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
    cassandra/trunk/src/java/org/apache/cassandra/db/Table.java

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=982023&r1=982022&r2=982023&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Tue 
Aug  3 20:13:27 2010
@@ -138,7 +138,7 @@ public class ColumnFamilyStore implement
     {
         assert metadata != null : "null metadata for " + table + ":" + 
columnFamilyName;
         table_ = table;
-        columnFamily_ = columnFamilyName;
+        columnFamily_ = columnFamilyName; 
         this.metadata = metadata;
         this.partitioner_ = partitioner;
         fileIndexGenerator_.set(generation);
@@ -251,6 +251,11 @@ public class ColumnFamilyStore implement
             indexedColumns_.put(column, indexedCfs);
         }
     }
+    
+    String getMBeanName()
+    {
+        return "org.apache.cassandra.db:type=ColumnFamilyStores,keyspace=" + 
table_ + ",columnfamily=" + columnFamily_;
+    }
 
     public long getMinRowSize()
     {

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java?rev=982023&r1=982022&r2=982023&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/Table.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/Table.java Tue Aug  3 
20:13:27 2010
@@ -246,7 +246,7 @@ public class Table
             columnFamilyStores.put(cfm.cfId, cfs);
             try
             {
-                ObjectName mbeanName = new 
ObjectName("org.apache.cassandra.db:type=ColumnFamilyStores,keyspace=" + table 
+ ",columnfamily=" + cfm.cfName);
+                ObjectName mbeanName = new ObjectName(cfs.getMBeanName());
                 if (mbs.isRegistered(mbeanName))
                     mbs.unregisterMBean(mbeanName);
                 mbs.registerMBean(cfs, mbeanName);
@@ -292,6 +292,20 @@ public class Table
             {
                 throw new IOException(e);
             }
+            
+            // unregister mbean.
+            try
+            {
+                MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+                ObjectName mbeanName = new ObjectName(cfs.getMBeanName());
+                if (mbs.isRegistered(mbeanName))
+                    mbs.unregisterMBean(mbeanName);
+            }
+            catch (Exception e)
+            {
+                // I'm not going to let this block the drop.
+                logger.warn(e.getMessage(), e);
+            }
         }
     }
     


Reply via email to