RFR: 8347826: Introspector shows wrong method list after 8071693 [v16]

duke duke at openjdk.org
Tue Jun 3 05:43:56 UTC 2025


On Fri, 30 May 2025 11:20:39 GMT, Roman Marchenko <rmarchenko at openjdk.org> wrote:

>> Fixed `com.sun.beans.introspect.MethodInfo` and `com.sun.beans.introspect.PropertyInfo` to make `Introspector.addMethod()` working properly when filtering methods out.
>> 
>> Also, after PR discussion, added the approptiate test cases with corresponding fixes in MethodInfo.java and PropertyInfo.java.
>> 
>> ---------
>> `getMethodDescriptors()` returns descriptors of public methods of a class and its parent classes, including default and static methods defined in interfaces. The result doesn't include methods which were declared and not implemented, bridge methods, or methods which were overriden in subclasses.
>> 
>> When a subclass "overrides" a static method from a parent class `getMethodDescriptors()` behaves as follows:
>> 
>> - In case of a clash with a class method, the class version will take precedence rather than interface's one. 
>> - If the same method appears in multiple classes/interfaces within the same hierarchy, the version from the most specific sub-interface will be selected.
>> - If the method appears in classes/interfaces from different hierarchies, the result is undefined, either version can be returned.
>> 
>> `getPropertyDescriptors()` returns descriptors of methods which were identified as getters or setters. As there can be the only method getter/setter per property, the following rules are applied when choosing a getter/setter:
>> 
>> * Getters/setters for the same property defined (not necessarily overriden) in subclasses have higher precedence.
>> * If there are getters/setters for the same property defined in the same class and argument types are assignable one to another, the method with the Least Common Supertype has the lower priority. If argument types are not assignable, the result is undefined (any method will be chosen).
>> * Gettters/setters declared and not implemented are not considered.
>
> Roman Marchenko has updated the pull request incrementally with one additional commit since the last revision:
> 
>   minor change

@wkia 
Your change (at version 8d46a88d6d3b47484cccd587df83df1add67b4ae) is now ready to be sponsored by a Committer.

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

PR Comment: https://git.openjdk.org/jdk/pull/23443#issuecomment-2933545793


More information about the client-libs-dev mailing list