You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2012/01/06 22:18:02 UTC
svn commit: r1228415 -
/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/JmxManager.java
Author: cwiklik
Date: Fri Jan 6 21:18:02 2012
New Revision: 1228415
URL: http://svn.apache.org/viewvc?rev=1228415&view=rev
Log:
UIMA-2316 synchronized access to MBeanServer
Modified:
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/JmxManager.java
Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/JmxManager.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/JmxManager.java?rev=1228415&r1=1228414&r2=1228415&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/JmxManager.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/JmxManager.java Fri Jan 6 21:18:02 2012
@@ -43,25 +43,27 @@ public class JmxManager implements JmxMa
* @param aDomain
*/
public void unregisterDomainObjects(String aDomain) {
- if (!isInitialized()) {
- return;
- }
- try {
- Set set = getMBeansInDomain(aDomain);
- Iterator it = set.iterator();
- while (it.hasNext()) {
- ObjectName on = (ObjectName) it.next();
- try {
- unregisterMBean(on);
- } catch (Exception e) {
- } // Dont care if there is an exception
+ // use class level locking to make sure one thread at time executes the code
+ synchronized(JmxManager.class) {
+ if (!isInitialized()) {
+ return;
+ }
+ try {
+ Set set = getMBeansInDomain(aDomain);
+ Iterator it = set.iterator();
+ while (it.hasNext()) {
+ ObjectName on = (ObjectName) it.next();
+ try {
+ unregisterMBean(on);
+ } catch (Exception e) {
+ } // Dont care if there is an exception
+ }
+ } catch (Exception e) {
+ UIMAFramework.getLogger().logrb(Level.WARNING, JmxMBeanAgent.class.getName(),
+ "unregisterDomainObjects", LOG_RESOURCE_BUNDLE,
+ "UIMA_JMX_failed_to_register_mbean__WARNING", e);
}
- } catch (Exception e) {
- UIMAFramework.getLogger().logrb(Level.WARNING, JmxMBeanAgent.class.getName(),
- "unregisterDomainObjects", LOG_RESOURCE_BUNDLE,
- "UIMA_JMX_failed_to_register_mbean__WARNING", e);
}
-
}
private Set getMBeansInDomain(String aDomain) throws Exception {
@@ -90,10 +92,13 @@ public class JmxManager implements JmxMa
}
try {
- if (((MBeanServer) platformMBeanServer).isRegistered(aName)) {
- ((MBeanServer) platformMBeanServer).unregisterMBean(aName);
+ // use class level locking to make sure one thread at time executes the code
+ synchronized(JmxManager.class) {
+ if (((MBeanServer) platformMBeanServer).isRegistered(aName)) {
+ ((MBeanServer) platformMBeanServer).unregisterMBean(aName);
+ }
+ ((MBeanServer) platformMBeanServer).registerMBean(anMBeanToRegister, aName);
}
- ((MBeanServer) platformMBeanServer).registerMBean(anMBeanToRegister, aName);
} catch (Exception e) {
UIMAFramework.getLogger()
.logrb(Level.WARNING, JmxMBeanAgent.class.getName(), "registerMBean",
@@ -112,20 +117,22 @@ public class JmxManager implements JmxMa
return true;
}
- public synchronized void unregisterMBean(ObjectName anMBeanToUnregister) {
- if (!isInitialized()) {
- return;
- }
- try {
- if (((MBeanServer) platformMBeanServer).isRegistered(anMBeanToUnregister)) {
- ((MBeanServer) platformMBeanServer).unregisterMBean(anMBeanToUnregister);
+ public void unregisterMBean(ObjectName anMBeanToUnregister) {
+ // use class level locking to make sure one thread at time executes the code
+ synchronized(JmxManager.class) {
+ if (!isInitialized()) {
+ return;
+ }
+ try {
+ if (((MBeanServer) platformMBeanServer).isRegistered(anMBeanToUnregister)) {
+ ((MBeanServer) platformMBeanServer).unregisterMBean(anMBeanToUnregister);
+ }
+ } catch (Exception e) {
+ UIMAFramework.getLogger()
+ .logrb(Level.WARNING, JmxMBeanAgent.class.getName(), "registerMBean",
+ LOG_RESOURCE_BUNDLE, "UIMA_JMX_failed_to_register_mbean__WARNING", e);
}
- } catch (Exception e) {
- UIMAFramework.getLogger()
- .logrb(Level.WARNING, JmxMBeanAgent.class.getName(), "registerMBean",
- LOG_RESOURCE_BUNDLE, "UIMA_JMX_failed_to_register_mbean__WARNING", e);
}
-
}
public void destroy() throws Exception {