RFR: 8332303: Better JMX interoperability with older JDKs, after removing Subject Delegation [v2]

Sean Mullan mullan at openjdk.org
Thu May 16 20:07:04 UTC 2024


On Thu, 16 May 2024 11:46:30 GMT, Kevin Walls <kevinw at openjdk.org> wrote:

>> Running JConsole from a previous JDK, and attaching to jdk-23 (after [JDK-8326666](https://bugs.openjdk.org/browse/JDK-8326666): Remove the Java Management Extension (JMX) Subject Delegation feature), the MBean tab is blank.
>> 
>> In javax/management/remote/rmi/RMIConnectionImpl.java:
>> addNotificationListener rejects a non-null delegationSubjects array, but older JDKs will send such an array. It could accept the array, and only reject/throw if it contains a non-null Subject (i.e. if an attempt to use subject delegation is really happening).
>> 
>> Manually testing JConsole, the MBean tab is fully populated and usable.
>
> Kevin Walls has updated the pull request incrementally with one additional commit since the last revision:
> 
>   IllegalArgumentException throws doc update

src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnection.java line 959:

> 957:      * <code>NotificationFilters</code>.  Elements of this array can
> 958:      * be null.
> 959:      * @param delegationSubjects should be {@code null}, but a non-null

Would it be more clear to say: "should be {@code null}. However, an array where every entry is null is also accepted for compatibility reasons."

src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnection.java line 960:

> 958:      * be null.
> 959:      * @param delegationSubjects should be {@code null}, but a non-null
> 960:      * array is accepted for compatibilty reasons, which must not contain

Typo: s/compatibilty/compatibility/

src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnection.java line 969:

> 967:      * @throws IllegalArgumentException if <code>names</code> or
> 968:      * <code>filters</code> is null, or if <code>names</code> contains
> 969:      * a null element, or if these two arrays do not have the same size.

Was this actually an oversight in the previous change to remove subject delegation? When `delegationSubjects` is null, then the 3 arrays are never going to be the same size.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/19253#discussion_r1603957397
PR Review Comment: https://git.openjdk.org/jdk/pull/19253#discussion_r1603965135
PR Review Comment: https://git.openjdk.org/jdk/pull/19253#discussion_r1603963533


More information about the serviceability-dev mailing list