Author: markt
Date: Wed Aug 17 17:10:25 2011
New Revision: 1158834
URL: http://svn.apache.org/viewvc?rev=1158834&view=rev
Log:
Ensure MBeans are de-registered on pool close.
Modified:
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericObjectPool.java
Modified:
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
URL:
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java?rev=1158834&r1=1158833&r2=1158834&view=diff
==============================================================================
---
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
(original)
+++
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
Wed Aug 17 17:10:25 2011
@@ -268,6 +268,7 @@ public class GenericKeyedObjectPool<K,T>
ObjectName oname =
new ObjectName(ONAME_BASE + jmxNamePrefix + i);
mbs.registerMBean(this, oname);
+ this.oname = oname;
registered = true;
} catch (MalformedObjectNameException e) {
if (GenericObjectPoolConfig.DEFAULT_JMX_NAME_PREFIX.equals(
@@ -1098,6 +1099,7 @@ public class GenericKeyedObjectPool<K,T>
evictionIterator = null;
evictionKeyIterator = null;
startEvictor(-1L);
+ ManagementFactory.getPlatformMBeanServer().unregisterMBean(oname);
}
@@ -1950,6 +1952,8 @@ public class GenericKeyedObjectPool<K,T>
private Object maxBorrowWaitTimeMillisLock = new Object();
private volatile long maxBorrowWaitTimeMillis = 0;
+ private ObjectName oname = null;
+
private static final String ONAME_BASE =
"org.apache.commoms.pool2:type=GenericKeyedObjectPool,name=";
}
Modified:
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericObjectPool.java
URL:
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericObjectPool.java?rev=1158834&r1=1158833&r2=1158834&view=diff
==============================================================================
---
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericObjectPool.java
(original)
+++
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericObjectPool.java
Wed Aug 17 17:10:25 2011
@@ -222,6 +222,7 @@ public class GenericObjectPool<T> extend
ObjectName oname =
new ObjectName(ONAME_BASE + jmxNamePrefix + i);
mbs.registerMBean(this, oname);
+ this.oname = oname;
registered = true;
} catch (MalformedObjectNameException e) {
if (GenericObjectPoolConfig.DEFAULT_JMX_NAME_PREFIX.equals(
@@ -1005,6 +1006,7 @@ public class GenericObjectPool<T> extend
super.close();
clear();
startEvictor(-1L);
+ ManagementFactory.getPlatformMBeanServer().unregisterMBean(oname);
}
/**
@@ -1550,6 +1552,8 @@ public class GenericObjectPool<T> extend
private Object maxBorrowWaitTimeMillisLock = new Object();
private volatile long maxBorrowWaitTimeMillis = 0;
+ private ObjectName oname = null;
+
private static final String ONAME_BASE =
"org.apache.commoms.pool2:type=GenericObjectPool,name=";
}