|
@@ -34,6 +34,7 @@ import javax.management.MBeanServer;
|
|
import javax.management.MalformedObjectNameException;
|
|
import javax.management.MalformedObjectNameException;
|
|
import javax.management.ObjectName;
|
|
import javax.management.ObjectName;
|
|
import javax.management.ReflectionException;
|
|
import javax.management.ReflectionException;
|
|
|
|
+import javax.management.RuntimeMBeanException;
|
|
import javax.management.openmbean.CompositeData;
|
|
import javax.management.openmbean.CompositeData;
|
|
import javax.management.openmbean.CompositeType;
|
|
import javax.management.openmbean.CompositeType;
|
|
import javax.management.openmbean.TabularData;
|
|
import javax.management.openmbean.TabularData;
|
|
@@ -312,6 +313,15 @@ public class JMXJsonServlet extends HttpServlet {
|
|
Object value = null;
|
|
Object value = null;
|
|
try {
|
|
try {
|
|
value = mBeanServer.getAttribute(oname, attName);
|
|
value = mBeanServer.getAttribute(oname, attName);
|
|
|
|
+ } catch (RuntimeMBeanException e) {
|
|
|
|
+ // UnsupportedOperationExceptions happen in the normal course of business,
|
|
|
|
+ // so no need to log them as errors all the time.
|
|
|
|
+ if (e.getCause() instanceof UnsupportedOperationException) {
|
|
|
|
+ LOG.debug("getting attribute "+attName+" of "+oname+" threw an exception", e);
|
|
|
|
+ } else {
|
|
|
|
+ LOG.error("getting attribute "+attName+" of "+oname+" threw an exception", e);
|
|
|
|
+ }
|
|
|
|
+ return;
|
|
} catch (AttributeNotFoundException e) {
|
|
} catch (AttributeNotFoundException e) {
|
|
//Ignored the attribute was not found, which should never happen because the bean
|
|
//Ignored the attribute was not found, which should never happen because the bean
|
|
//just told us that it has this attribute, but if this happens just don't output
|
|
//just told us that it has this attribute, but if this happens just don't output
|