Browse Source

Fix MBean registration

Change-Id: I6f6b8641f6c3e8ab9f625594085014272305656a
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-5.1
Matthias Sohn 5 years ago
parent
commit
549c3acc5f
  1. 2
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCache.java
  2. 19
      org.eclipse.jgit/src/org/eclipse/jgit/util/Monitoring.java

2
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCache.java

@ -458,7 +458,7 @@ public class WindowCache {
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);

19
org.eclipse.jgit/src/org/eclipse/jgit/util/Monitoring.java

@ -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…
Cancel
Save