FULL PRODUCT VERSION :
All tested versions of Java SE 1.5/5.0 and 1.6/6.0.
ADDITIONAL OS VERSION INFORMATION :
N/A (platform generic)
A DESCRIPTION OF THE PROBLEM :
As visible through JConsole or other direct API usage, all operations exposed through the built-in MBeans under "java.lang" and "java.util.logging" report an "Impact" of "ACTION_INFO". This is not always correct.
A current list of affected operations from 1.6.0_18-b07:
java.lang:type=Threading / sun.management.ThreadImpl
- getThreadCpuTime(...)
- getThreadInfo(...)
- getThreadUserTime(...)
java.util.logging:type=Logging / java.util.logging.Logging
- getLoggerLevel(...)
- getParentLoggerName(...)
All the above operations return an "Impact" of "ACTION_INFO", but "INFO" would be most correct. Even "UNKNOWN" would be better than the current.
I am working on an authorization implementation to control access to JMX calls. One of the options allows access to "read-only" methods/operations, as determined by MBeanOperationInfo.getImpact(). Due to the "ACTION_INFO" being returned by the above operations, these operations are being improperly denied access. In JConsole, this results in the Threads graphs and tab being unavailable.
It is not clear how the MBeanInfo is being created for these beans / operations. However, other beans created with StandardMBean properly default to "UNKNOWN", and properly return other values as/if specified.
Another example of an exposed bean that returns a proper "UNKNOWN" impact is getVMOption(...) on com.sun.management:type=HotSpotDiagnostic / sun.management.HotSpotDiagnostic .
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Above referenced MBean operations should return "INFO" instead of "ACTION_INFO".
REPRODUCIBILITY :
This bug can be reproduced always.