Fix MBean registration
Change-Id: I6f6b8641f6c3e8ab9f625594085014272305656a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
42f0c7c9cb
commit
549c3acc5f
|
@ -458,7 +458,7 @@ else if (eb < 4)
|
|||
|
||||
mbean = new StatsRecorderImpl();
|
||||
statsRecorder = mbean;
|
||||
Monitoring.registerMBean(WindowCacheStats.class, "block_cache"); //$NON-NLS-1$
|
||||
Monitoring.registerMBean(mbean, "block_cache"); //$NON-NLS-1$
|
||||
|
||||
if (maxFiles < 1)
|
||||
throw new IllegalArgumentException(JGitText.get().openFilesMustBeAtLeast1);
|
||||
|
|
|
@ -39,19 +39,26 @@ public class Monitoring {
|
|||
* Register a MBean with the platform MBean server
|
||||
*
|
||||
* @param mbean
|
||||
* the mbean interface to register
|
||||
* the mbean object to register
|
||||
* @param metricName
|
||||
* name of the JGit metric, will be prefixed with
|
||||
* "org.eclipse.jgit/"
|
||||
* @return the registered mbean's object instance
|
||||
*/
|
||||
public static @Nullable ObjectInstance registerMBean(Class mbean,
|
||||
public static @Nullable ObjectInstance registerMBean(Object mbean,
|
||||
String metricName) {
|
||||
boolean register;
|
||||
boolean register = false;
|
||||
try {
|
||||
register = SystemReader.getInstance().getUserConfig().getBoolean(
|
||||
Class<?> interfaces[] = mbean.getClass().getInterfaces();
|
||||
for (Class<?> i : interfaces) {
|
||||
register = SystemReader.getInstance().getUserConfig()
|
||||
.getBoolean(
|
||||
ConfigConstants.CONFIG_JMX_SECTION,
|
||||
mbean.getSimpleName(), false);
|
||||
i.getSimpleName(), false);
|
||||
if (register) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (IOException | ConfigInvalidException e) {
|
||||
LOG.error(e.getMessage(), e);
|
||||
return null;
|
||||
|
@ -61,7 +68,7 @@ public class Monitoring {
|
|||
}
|
||||
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
||||
try {
|
||||
ObjectName mbeanName = objectName(mbean, metricName);
|
||||
ObjectName mbeanName = objectName(mbean.getClass(), metricName);
|
||||
if (server.isRegistered(mbeanName)) {
|
||||
server.unregisterMBean(mbeanName);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue