1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.metrics2.lib;
19
20 import org.apache.commons.logging.Log;
21 import org.apache.commons.logging.LogFactory;
22
23 import java.lang.reflect.Method;
24
25 public class DefaultMetricsSystemHelper {
26
27 private static final Log LOG = LogFactory.getLog(DefaultMetricsSystemHelper.class);
28 private final Method removeObjectMethod;
29
30 public DefaultMetricsSystemHelper() {
31 Method m;
32 try {
33 Class<? extends DefaultMetricsSystem> clazz = DefaultMetricsSystem.INSTANCE.getClass();
34 m = clazz.getDeclaredMethod("removeObjectName", String.class);
35 m.setAccessible(true);
36 } catch (NoSuchMethodException e) {
37 m = null;
38 }
39 removeObjectMethod = m;
40 }
41
42 public boolean removeObjectName(final String name) {
43 if (removeObjectMethod != null) {
44 try {
45 removeObjectMethod.invoke(DefaultMetricsSystem.INSTANCE, name);
46 return true;
47 } catch (Exception e) {
48 if (LOG.isTraceEnabled()) {
49 LOG.trace("Unable to remove object name from cache: " + name, e);
50 }
51 }
52 }
53 return false;
54 }
55 }