There are two issues in the way the SnapshotMBeanServerConnection (introduced in JDK 6) is used within JConsole:
- JConsole Plugins:
The call to JConsoleContext.getMBeanServerConnection() should return the original
MBeanServerConnection but returns the SnapshotMBeanServerConnection.
- MBeans tab:
The Attributes are computed by calling getAttributes first and if an error occurs
then we call getAttribute for each individual attribute in the list.
The problem comes from the fact that the individual getAttribute calls go through
the SnapshotMBeanServerConnection that calls again getAttributes internally.