Hi Peter,

You are correct, thanks for noticing this. Also after reading your mail I 
looked through the test in test/java/lang/refledt/DefaultStaticTest/ and just 
realized the tests doesn't cover getMethod() at all. So this change needs more 
tests as well.

I'll post a new webrev later this week.

cheers
/Joel
 
On 9 sep 2013, at 19:24, Peter Levart <peter.lev...@gmail.com> wrote:

> Hi Joel,
> 
> The fix is ok for getMethods(), but I think the getMethod(String name, 
> Class<?>... parameterTypes) should also be fixed. Currently the following 
> code:
> 
> public class StaticInterfaceMethodTest {
>     public interface A {
>         static void m() {}
>     }
> 
>     public interface B extends A {
>     }
> 
>     public static void main(String[] args) throws Exception {
>         B.class.getMethod("m");
>     }
> }
> 
> 
> ...succeeds, but should throw NoSuchMethodException, I think.
> 
> 
> Regards, Peter
> 
> On 09/09/2013 07:00 PM, Joel Borggrén-Franck wrote:
>> Hi
>> 
>> Pleaser review fix for 8009411 : getMethods should not inherit static 
>> methods from interfaces 
>> 
>> The issue is that since we added static methods to interfaces those have 
>> erroneously been reflected in getMethods of implementing classes. This fix 
>> filters out static interface methods from superinterfaces when adding 
>> methods. I have also added a note to the javadoc for both getMembers and 
>> getDeclaredMembers pointing this out (though it is implied from JLS). Webrev 
>> is based on the clarification to getMethods and friends out for review on 
>> this list.
>> 
>> Webrev: 
>> http://cr.openjdk.java.net/~jfranck/8009411/webrev.00/
>> 
>> Bug is here: 
>> http://bugs.sun.com/view_bug.do?bug_id=8009411
>> 
>> 
>> For oracle reviewers, ccc is approved.
>> 
>> cheers
>> /Joel
>> 
> 

Reply via email to