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);
+ }
}
}