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

Roman Marchenko rmarchenko at openjdk.org
Wed Mar 26 06:35:11 UTC 2025


On Mon, 24 Mar 2025 18:43:36 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:

>> Roman Marchenko has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Fixing review comments
>
> src/java.desktop/share/classes/com/sun/beans/introspect/MethodInfo.java line 114:
> 
>> 112:                 }
>> 113:                 for (Method method : iface.getMethods()) {
>> 114:                     if (!Modifier.isAbstract(method.getModifiers()) && !method.isBridge()) {
> 
> I have looked into the `Modifier` class to check which other modifiers we have, and I found that you might also want to skip static and private methods. Perhaps method.isDefault() is the method you're looking for? It seems like none of the tests catch that?
> 
> Also please double check the code a few lines above:
> 
>                             method = MethodFinder.findAccessibleMethod(method);
>                             if (!method.getDeclaringClass().isInterface()) {
>                                 method = null; // ignore methods from superclasses
>                             }
> 
>  - ~~Why do we need to skip the methods from the interfaces? Maybe we can inject our logic there?~~
>  - The method `MethodFinder.findAccessibleMethod` also checks each method to be `isExported`

Are you thinking of specific test cases that are not covered here? Could you share, please?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23443#discussion_r2013474962


More information about the client-libs-dev mailing list