On Thu, 3 Apr 2025 09:21:38 GMT, Roman Marchenko <rmarche...@openjdk.org> wrote:
>> Fixed `com.sun.beans.introspect.MethodInfo#MethodOrder` 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: > > Fixing review comments I do not have any other comments, @aivanov-jdk please take a look. ------------- Marked as reviewed by serb (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/23443#pullrequestreview-2751882390