unregister CF mbean when a CF is dropped. patch by gdusbabek, reviewed by jbellis. CASSANDRA-1334

git-svn-id: https://svn.apache.org/repos/asf/cassandra/trunk@982023 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Gary Dusbabek 2010-08-03 20:13:27 +00:00
parent 5e1abef0b0
commit 55a11e053e
2 changed files with 21 additions and 2 deletions

View File

@ -138,7 +138,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
{
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 implements ColumnFamilyStoreMBean
indexedColumns_.put(column, indexedCfs);
}
}
String getMBeanName()
{
return "org.apache.cassandra.db:type=ColumnFamilyStores,keyspace=" + table_ + ",columnfamily=" + columnFamily_;
}
public long getMinRowSize()
{

View File

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