On Wed, 15 May 2024 19:09:54 GMT, Chris Plummer <[email protected]> wrote:
> I'm just trying to understand current and previous behavior of jconsole a bit
> better.....
Right, to be clear it's not JConsole's fault. The early part of JConsole's
stack is:
...connection....
at
java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl_Stub.addNotificationListeners(RMIConnectionImpl_Stub.java:136)
at
java.management.rmi/javax.management.remote.rmi.RMIConnector.addListenersWithSubjects(RMIConnector.java:595)
at
java.management.rmi/javax.management.remote.rmi.RMIConnector.addListenerWithSubject(RMIConnector.java:571)
at
java.management.rmi/javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.addNotificationListener(RMIConnector.java:1238)
at
jdk.jconsole/sun.tools.jconsole.MBeansTab$1.doInBackground(MBeansTab.java:93)
...older frames...
...and when it is running with an older JDK,
RMIConnector.addListenerWithSubject() would create a new array of Subjects,
containing what it was given (which is null).
It passes on the array, and then is going to get the
UnsupportedOperationException.
i.e. Older client code passing a null Subject, actually "promotes" it to an
array and hits the Exception, although it really is not trying to use the
removed feature.
This problem is specifically with addListenerWithSubject.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/19253#issuecomment-2113397029