RFR: 8345987: java.management has two Util.newObjectName methods (remove one) [v2]
Kevin Walls
kevinw at openjdk.org
Fri Dec 13 20:01:37 UTC 2024
On Fri, 13 Dec 2024 19:57:14 GMT, Leonid Mesnik <lmesnik at openjdk.org> wrote:
> Thanks for describing.
Thanks for confirming. The fewer of these methods the better!
> src/java.management/share/classes/javax/management/ObjectName.java line 1225:
>
>> 1223: if (name.getClass().equals(ObjectName.class))
>> 1224: return name;
>> 1225: return sun.management.Util.newObjectName(name.getSerializedNameString());
>
> The newObjectName methods are different in 2 Utils.
> The share/classes/sun/management/Util.java is
>
> 45 │ public static ObjectName newObjectName(String name) {
> 46 │ try {
> 47 │ return ObjectName.getInstance(name);
> 48 │ } catch (MalformedObjectNameException e) {
> 49 │ throw new IllegalArgumentException(e);
> 50 │ }
> 51 │ }
>
> Isn't it infinite recursion?
Right, they are different, but one uses "new", and one calls a newInstance method which uses "new", so they are really the same. Daniel's note in the JBS bug hints that there may have been an idea to do some caching in getInstance, which has not as yet been implemented.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/22681#issuecomment-2542205911
PR Review Comment: https://git.openjdk.org/jdk/pull/22681#discussion_r1884463700
More information about the serviceability-dev
mailing list