> 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 ------------- Changes: - all: https://git.openjdk.org/jdk/pull/23443/files - new: https://git.openjdk.org/jdk/pull/23443/files/cd00cee2..980ebde5 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=23443&range=11 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23443&range=10-11 Stats: 8 lines in 1 file changed: 1 ins; 2 del; 5 mod Patch: https://git.openjdk.org/jdk/pull/23443.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/23443/head:pull/23443 PR: https://git.openjdk.org/jdk/pull/23443