diff options
author | Stephane Gamard <stephane.gamard@searchbox.com> | 2014-08-11 10:20:12 +0200 |
---|---|---|
committer | Stephane Gamard <stephane.gamard@searchbox.com> | 2014-08-11 10:38:40 +0200 |
commit | bf4b6be6f97ff3a420dfbd4db055f03b073ec7b2 (patch) | |
tree | 85f07d81a735e41bdbd7c7f734603c26c490a3fc | |
parent | f1c87c9f0411ae6067408c9d0625c2e7f1f4d79a (diff) | |
download | sonarqube-bf4b6be6f97ff3a420dfbd4db055f03b073ec7b2.tar.gz sonarqube-bf4b6be6f97ff3a420dfbd4db055f03b073ec7b2.zip |
Added check for mbean registration
-rw-r--r-- | server/process/sonar-process/src/main/java/org/sonar/process/JmxUtils.java | 14 | ||||
-rw-r--r-- | server/process/sonar-process/src/main/java/org/sonar/process/MonitoredProcess.java | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/server/process/sonar-process/src/main/java/org/sonar/process/JmxUtils.java b/server/process/sonar-process/src/main/java/org/sonar/process/JmxUtils.java index b88973e45c9..bdceac6420f 100644 --- a/server/process/sonar-process/src/main/java/org/sonar/process/JmxUtils.java +++ b/server/process/sonar-process/src/main/java/org/sonar/process/JmxUtils.java @@ -44,6 +44,9 @@ public class JmxUtils { public static void registerMBean(Object mbean, String name) { try { MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer(); + if(mbeanServer.isRegistered(objectName(name))){ + mbeanServer.unregisterMBean(objectName(name)); + } mbeanServer.registerMBean(mbean, objectName(name)); } catch (RuntimeException re) { throw re; @@ -51,4 +54,15 @@ public class JmxUtils { throw new IllegalStateException("Fail to register JMX MBean named " + name, e); } } + + public static void deRegisterMBean(String name) { + try { + MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer(); + mbeanServer.unregisterMBean(objectName(name)); + } catch (RuntimeException re) { + throw re; + } catch (Exception e) { + throw new IllegalStateException("Fail to register JMX MBean named " + name, e); + } + } } diff --git a/server/process/sonar-process/src/main/java/org/sonar/process/MonitoredProcess.java b/server/process/sonar-process/src/main/java/org/sonar/process/MonitoredProcess.java index 3dde4e021c5..1f3579b8e79 100644 --- a/server/process/sonar-process/src/main/java/org/sonar/process/MonitoredProcess.java +++ b/server/process/sonar-process/src/main/java/org/sonar/process/MonitoredProcess.java @@ -113,6 +113,7 @@ public abstract class MonitoredProcess implements ProcessMXBean { pingTask.cancel(true); pingTask = null; } + JmxUtils.deRegisterMBean(name); try { doTerminate(); } catch (Exception e) { |