jdk/test/java/lang/reflect/DefaultMethodMembers/FilterNotMostSpecific.java
author plevart
Thu, 05 Jan 2017 08:51:03 +0100
changeset 42997 5f83f2054eca
parent 42948 1f4754f075f2
permissions -rw-r--r--
8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950 Summary: Final fix for 8062389: Class.getMethod() is inconsistent with Class.getMethods() results, 8029459: getMethods returns methods that are not members of the class, 8061950: Class.getMethods() exhibits quadratic time complexity Reviewed-by: alanb, mchung, psandoz, dfuchs, darcy, redestad
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
     1
/*
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
     2
 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
     4
 *
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
     7
 * published by the Free Software Foundation.
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
     8
 *
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    13
 * accompanied this code).
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    14
 *
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    18
 *
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    21
 * questions.
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    22
 */
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    23
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    24
/*
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    25
 * @test
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    26
 * @bug 8029674
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    27
 * @summary Verify that the right interface methods are returned by
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    28
 *          Class.getMethod() and Class.getMethods()
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    29
 * @run testng FilterNotMostSpecific
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    30
 */
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    31
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    32
import java.lang.reflect.*;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    33
import java.lang.annotation.*;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    34
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    35
import java.util.Arrays;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    36
import java.util.List;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    37
import java.util.Map;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    38
import java.util.HashMap;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    39
import java.util.stream.Collectors;
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
    40
import java.util.stream.Stream;
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    41
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    42
import org.testng.annotations.DataProvider;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    43
import org.testng.annotations.Test;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    44
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    45
import static org.testng.Assert.*;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    46
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    47
public class FilterNotMostSpecific {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    48
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    49
    @Test(dataProvider="getCases")
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    50
    public void testGetMethod(Class<?> iface) {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    51
        boolean match = false;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    52
        MethodDesc[] expectedMethods = iface.getAnnotationsByType(MethodDesc.class);
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    53
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    54
        for (MethodDesc expected : expectedMethods) {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    55
            if (expected.isGetMethodReturn()) {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    56
                try {
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
    57
                    Method m = iface.getMethod(expected.name(), expected.parameterTypes());
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    58
                    if (!assertMatch(expected, m))
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    59
                        fail(failMsg(expected, m, iface));
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    60
                    else
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    61
                        match = true;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    62
                } catch (NoSuchMethodException e) {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    63
                    fail("expected: " + toMethodString(expected), e);
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    64
                }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    65
            }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    66
        }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    67
        assert(match);
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    68
    }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    69
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    70
    @Test(dataProvider="getCases")
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    71
    public void testGetMethods(Class<?> iface) {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    72
        List<Method> foundMethods = filterObjectMethods(iface.getMethods());
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    73
        MethodDesc[] expectedMethods = iface.getAnnotationsByType(MethodDesc.class);
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    74
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    75
        for (MethodDesc expected : expectedMethods) {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    76
            boolean found = false;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    77
            for (Method m : foundMethods) {
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
    78
                if (assertMatch(expected, m)) {
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    79
                    found = true;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    80
                    break;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    81
                }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    82
            }
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
    83
            if (!found)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
    84
                fail("On: "+ iface +"\nDid not find " + toMethodString(expected) +
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
    85
                     " among " + foundMethods);
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    86
        }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    87
        assertEquals(foundMethods.size(), expectedMethods.length,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    88
                "\non: " + iface +
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    89
                "\nexpected: " + toMethodStrings(expectedMethods) +
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    90
                "\nfound: " + foundMethods + "\n");
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    91
    }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    92
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    93
    private boolean assertMatch(MethodDesc expected, Method m) {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    94
        if (!expected.name().equals(m.getName()))
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    95
            return false;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    96
        if (expected.declaringClass() != m.getDeclaringClass())
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
    97
            return false;
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
    98
        if (!Arrays.equals(expected.parameterTypes(), m.getParameterTypes()))
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
    99
            return false;
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   100
        if (expected.returnType() != NotSpecified.class &&
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   101
            expected.returnType() != m.getReturnType())
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   102
            return false;
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   103
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   104
        if (expected.kind() == MethodKind.ABSTRACT)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   105
            assertTrue(Modifier.isAbstract(m.getModifiers()), m + " should be ABSTRACT");
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   106
        else if (expected.kind() == MethodKind.CONCRETE)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   107
            assertTrue(!Modifier.isAbstract(m.getModifiers()) && !m.isDefault(), m + " should be CONCRETE");
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   108
        else if (expected.kind() == MethodKind.DEFAULT)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   109
            assertTrue(m.isDefault(), m + " should be DEFAULT");
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   110
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   111
        return true;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   112
    }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   113
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   114
    private String failMsg(MethodDesc expected, Method m, Class<?> iface) {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   115
        return "\nOn interface: " + iface +
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   116
            "\nexpected: " + toMethodString(expected) +
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   117
            "\nfound: " + m;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   118
    }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   119
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   120
    private static List<Method> filterObjectMethods(Method[] in) {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   121
        return Arrays.stream(in).
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   122
            filter(m -> (m.getDeclaringClass() != java.lang.Object.class)).
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   123
            collect(Collectors.toList());
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   124
    }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   125
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   126
    private String toMethodString(MethodDesc m) {
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   127
        return (m.returnType() != NotSpecified.class
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   128
                ? m.returnType().getSimpleName() + " "
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   129
                : "") +
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   130
               m.declaringClass().getSimpleName().toString() + "." +
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   131
               m.name() + Stream.of(m.parameterTypes())
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   132
                                .map(cl -> cl.getSimpleName())
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   133
                                .collect(Collectors.joining(", ", "(", ")"));
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   134
    }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   135
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   136
    private List<String> toMethodStrings(MethodDesc[] m) {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   137
        return Arrays.stream(m).
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   138
            map(this::toMethodString)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   139
            .collect(Collectors.toList());
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   140
    }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   141
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   142
    @Retention(RetentionPolicy.RUNTIME)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   143
    @Repeatable(MethodDescs.class)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   144
    public @interface MethodDesc {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   145
        String name();
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   146
        Class<?> returnType() default NotSpecified.class;
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   147
        Class<?>[] parameterTypes() default {};
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   148
        Class<?> declaringClass();
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   149
        MethodKind kind() default MethodKind.ABSTRACT;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   150
        boolean isGetMethodReturn() default false;
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   151
    }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   152
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   153
    // special type marking a not-specified return type in @MethodDesc
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   154
    interface NotSpecified {}
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   155
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   156
    @Retention(RetentionPolicy.RUNTIME)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   157
    public @interface MethodDescs {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   158
        MethodDesc[] value();
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   159
    }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   160
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   161
    public static enum MethodKind {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   162
        ABSTRACT,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   163
        CONCRETE,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   164
        DEFAULT,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   165
    }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   166
    // base interfaces
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   167
    interface I { void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   168
    interface J extends I { void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   169
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   170
    interface Jprim extends I {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   171
    interface Jbis extends Jprim { void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   172
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   173
    // interesting cases
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   174
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   175
    @MethodDesc(name="nonDefault", declaringClass=Jbis.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   176
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   177
    interface P1 extends Jbis {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   178
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   179
    @MethodDesc(name="nonDefault", declaringClass=Jbis.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   180
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   181
    interface P2 extends Jbis, Jprim {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   182
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   183
    @MethodDesc(name="nonDefault", declaringClass=Jbis.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   184
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   185
    interface P3 extends Jbis, Jprim, I {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   186
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   187
    @MethodDesc(name="nonDefault", declaringClass=J.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   188
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   189
    interface P4 extends I, J {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   190
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   191
    @MethodDesc(name="nonDefault", declaringClass=J.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   192
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   193
    interface P5 extends J, I {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   194
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   195
    @MethodDesc(name="nonDefault", declaringClass=J.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   196
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   197
    interface K1 extends J {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   198
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   199
    @MethodDesc(name="nonDefault", declaringClass=K1M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   200
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   201
    interface K1M extends J { void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   202
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   203
    @MethodDesc(name="nonDefault", declaringClass=J.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   204
             isGetMethodReturn=true)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   205
   interface K2 extends I, J {}
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   206
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   207
    @MethodDesc(name="nonDefault", declaringClass=J.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   208
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   209
    interface K2O extends J, I {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   210
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   211
    @MethodDesc(name="nonDefault", declaringClass=K2M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   212
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   213
    interface K2M extends J, I { void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   214
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   215
    // base interfaces default methods
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   216
    interface L { default void isDefault() {} void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   217
    interface M extends L { default void isDefault() {} void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   218
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   219
    // test cases default methods
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   220
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   221
    @MethodDesc(name="nonDefault", declaringClass=M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   222
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   223
    @MethodDesc(name="isDefault", declaringClass=M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   224
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   225
    interface N1 extends M {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   226
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   227
    @MethodDesc(name="isDefault", declaringClass=N1D.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   228
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   229
    @MethodDesc(name="nonDefault", declaringClass=M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   230
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   231
    interface N1D extends M { default void isDefault() {}}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   232
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   233
    @MethodDesc(name="nonDefault", declaringClass=N1N.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   234
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   235
    @MethodDesc(name="isDefault", declaringClass=M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   236
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   237
    interface N1N extends M { void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   238
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   239
    @MethodDesc(name="isDefault", declaringClass=N1DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   240
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   241
    @MethodDesc(name="nonDefault", declaringClass=N1DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   242
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   243
    interface N1DN extends M { default void isDefault() {} void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   244
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   245
    @MethodDesc(name="isDefault", declaringClass=M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   246
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   247
    @MethodDesc(name="nonDefault", declaringClass=M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   248
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   249
    interface N2 extends M, L {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   250
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   251
    @MethodDesc(name="isDefault", declaringClass=M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   252
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   253
    @MethodDesc(name="nonDefault", declaringClass=M.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   254
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   255
    interface N22 extends L, M {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   256
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   257
    @MethodDesc(name="isDefault", declaringClass=N2D.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   258
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   259
    @MethodDesc(name="nonDefault", declaringClass=M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   260
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   261
    interface N2D extends M, L { default void isDefault() {}}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   262
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   263
    @MethodDesc(name="isDefault", declaringClass=M.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   264
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   265
    @MethodDesc(name="nonDefault", declaringClass=N2N.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   266
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   267
    interface N2N extends M, L { void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   268
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   269
    @MethodDesc(name="isDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   270
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   271
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   272
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   273
    interface N2DN extends M, L { default void isDefault() {} void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   274
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   275
    @MethodDesc(name="isDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   276
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   277
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   278
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   279
    interface O1 extends L, M, N2DN {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   280
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   281
    @MethodDesc(name="isDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   282
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   283
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   284
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   285
    interface O2 extends M, N2DN, L {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   286
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   287
    @MethodDesc(name="isDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   288
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   289
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   290
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   291
    interface O3 extends N2DN, L, M {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   292
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   293
    @MethodDesc(name="isDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   294
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   295
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   296
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   297
    abstract class C1 implements L, M, N2DN {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   298
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   299
    @MethodDesc(name="isDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   300
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   301
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   302
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   303
    abstract class C2 implements M, N2DN, L {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   304
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   305
    @MethodDesc(name="isDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   306
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   307
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   308
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   309
    abstract class C3 implements N2DN, L, M {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   310
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   311
    @MethodDesc(name="isDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   312
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   313
    @MethodDesc(name="nonDefault", declaringClass=C4.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   314
            kind=MethodKind.CONCRETE, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   315
    class C4 implements L, M, N2DN { public void nonDefault() {} }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   316
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   317
    @MethodDesc(name="isDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   318
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   319
    @MethodDesc(name="nonDefault", declaringClass=C5.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   320
            kind=MethodKind.CONCRETE, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   321
    class C5 implements M, N2DN, L { public void nonDefault() {} }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   322
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   323
    @MethodDesc(name="isDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   324
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   325
    @MethodDesc(name="nonDefault", declaringClass=C6.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   326
            kind=MethodKind.CONCRETE, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   327
    class C6 implements N2DN, L, M { public void nonDefault() {} }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   328
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   329
    // reabstraction
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   330
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   331
    @MethodDesc(name="isDefault", declaringClass=R1.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   332
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   333
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   334
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   335
    interface R1 extends L, M, N2DN { void isDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   336
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   337
    @MethodDesc(name="isDefault", declaringClass=R2.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   338
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   339
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   340
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   341
    interface R2 extends M, N2DN, L { void isDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   342
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   343
    @MethodDesc(name="isDefault", declaringClass=R3.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   344
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   345
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   346
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   347
    interface R3 extends N2DN, L, M { void isDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   348
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   349
    @MethodDesc(name="isDefault", declaringClass=R1.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   350
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   351
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   352
            isGetMethodReturn=true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   353
    interface R4 extends L, M, N2DN, R1 {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   354
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   355
    @MethodDesc(name="isDefault", declaringClass=R2.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   356
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   357
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   358
            isGetMethodReturn=true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   359
    interface R5 extends M, N2DN, R2, L {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   360
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   361
    @MethodDesc(name="isDefault", declaringClass=R3.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   362
            isGetMethodReturn=true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   363
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   364
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   365
    interface R6 extends N2DN, R3, L, M {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   366
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   367
    @MethodDesc(name="isDefault", declaringClass=R1.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   368
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   369
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   370
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   371
    interface R7 extends L, M, R1, N2DN {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   372
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   373
    @MethodDesc(name="isDefault", declaringClass=R2.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   374
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   375
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   376
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   377
    interface R8 extends M, R2, N2DN, L {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   378
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   379
    @MethodDesc(name="isDefault", declaringClass=R3.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   380
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   381
    @MethodDesc(name="nonDefault", declaringClass=N2DN.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   382
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   383
    interface R9 extends R3, N2DN, L, M {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   384
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   385
    // More reabstraction
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   386
    interface Z1 { void z(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   387
    interface Z2 extends Z1 { default void z() {} }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   388
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   389
    @MethodDesc(name="z", declaringClass=Z2.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   390
            isGetMethodReturn=true, kind=MethodKind.DEFAULT)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   391
    interface Z31 extends Z1, Z2 {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   392
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   393
    @MethodDesc(name="z", declaringClass=Z2.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   394
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   395
    interface Z32 extends Z2, Z1 {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   396
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   397
    interface Z3 extends Z2, Z1 { void z(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   398
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   399
    @MethodDesc(name="z", declaringClass=Z3.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   400
            isGetMethodReturn = true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   401
    interface Z41 extends Z1, Z2, Z3 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   402
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   403
    @MethodDesc(name="z", declaringClass=Z3.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   404
            isGetMethodReturn = true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   405
    interface Z42 extends Z2, Z3, Z1 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   406
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   407
    @MethodDesc(name="z", declaringClass=Z3.class,
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   408
            isGetMethodReturn = true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   409
    interface Z43 extends Z3, Z1, Z2 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   410
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   411
    @MethodDesc(name="z", declaringClass=Z3.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   412
            isGetMethodReturn = true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   413
    abstract class ZC41 implements Z1, Z2, Z3 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   414
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   415
    @MethodDesc(name="z", declaringClass=Z3.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   416
            isGetMethodReturn = true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   417
    abstract class ZC42 implements Z2, Z3, Z1 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   418
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   419
    @MethodDesc(name="z", declaringClass=Z3.class,
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   420
            isGetMethodReturn = true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   421
    abstract class ZC43 implements Z3, Z1, Z2 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   422
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   423
    // More reabstraction + concretization
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   424
    interface X1 { default void x() {} }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   425
    interface X2 extends X1 { void x(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   426
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   427
    @MethodDesc(name="x", declaringClass=X2.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   428
            isGetMethodReturn=true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   429
    interface X31 extends X1, X2 {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   430
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   431
    @MethodDesc(name="x", declaringClass=X2.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   432
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   433
    interface X32 extends X2, X1 {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   434
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   435
    @MethodDesc(name="x", declaringClass=X3.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   436
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   437
    interface X3 extends X2, X1 { default void x() {} }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   438
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   439
    // order shouldn't matter here
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   440
    @MethodDesc(name="x", declaringClass=X3.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   441
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   442
    interface X41 extends X1, X2, X3 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   443
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   444
    @MethodDesc(name="x", declaringClass=X3.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   445
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   446
    interface X42 extends X2, X3, X1 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   447
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   448
    @MethodDesc(name="x", declaringClass=X3.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   449
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   450
    interface X43 extends X3, X1, X2 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   451
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   452
    // order shouldn't matter here
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   453
    @MethodDesc(name="x", declaringClass=X3.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   454
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   455
    abstract class XC41 implements X1, X2, X3 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   456
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   457
    @MethodDesc(name="x", declaringClass=X3.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   458
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   459
    abstract class XC42 implements X2, X3, X1 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   460
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   461
    @MethodDesc(name="x", declaringClass=X3.class,
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   462
            kind=MethodKind.DEFAULT, isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   463
    abstract class XC43 implements X3, X1, X2 { }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   464
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   465
    interface K extends I, J { void nonDefault(); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   466
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   467
    @MethodDesc(name="nonDefault", declaringClass=K.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   468
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   469
    abstract class ZZ1 implements I, J, K {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   470
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   471
    @MethodDesc(name="nonDefault", declaringClass=K.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   472
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   473
    abstract class ZZ2 extends ZZ1 implements K, I, J {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   474
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   475
    @MethodDesc(name="nonDefault", declaringClass=K.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   476
            isGetMethodReturn=true)
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   477
    abstract class ZZ3 extends ZZ2 implements J, K, I {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   478
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   479
    // bridges...
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   480
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   481
    interface B1 { Object m(); }
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   482
    interface B2A extends B1 { Map m(); }
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   483
    interface B2B extends B1 { HashMap m(); }
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   484
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   485
    @MethodDesc(name="m", returnType=Object.class, declaringClass=B3A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   486
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   487
    @MethodDesc(name="m", returnType=Map.class, declaringClass=B3A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   488
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   489
    @MethodDesc(name="m", returnType=HashMap.class, declaringClass=B3A.class,
42947
2453d65278f3 8062389: Class.getMethod() is inconsistent with Class.getMethods() results
plevart
parents: 24867
diff changeset
   490
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   491
    interface B3A extends B2A { HashMap m(); }
42947
2453d65278f3 8062389: Class.getMethod() is inconsistent with Class.getMethods() results
plevart
parents: 24867
diff changeset
   492
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   493
    @MethodDesc(name="m", returnType=Object.class, declaringClass=B4A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   494
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   495
    @MethodDesc(name="m", returnType=Map.class, declaringClass=B4A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   496
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   497
    @MethodDesc(name="m", returnType=HashMap.class, declaringClass= B4A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   498
            isGetMethodReturn=true)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   499
    interface B4A extends B3A { HashMap m(); }
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   500
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   501
    @MethodDesc(name="m", returnType=Object.class, declaringClass=B4A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   502
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   503
    @MethodDesc(name="m", returnType=Map.class, declaringClass=B4A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   504
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   505
    @MethodDesc(name="m", returnType=HashMap.class, declaringClass= B4A.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   506
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   507
    interface B5A2 extends B4A, B1 {}
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   508
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   509
    @MethodDesc(name="m", returnType=Object.class, declaringClass=B4A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   510
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   511
    @MethodDesc(name="m", returnType=Map.class, declaringClass=B4A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   512
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   513
    @MethodDesc(name="m", returnType=HashMap.class, declaringClass= B4A.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   514
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   515
    interface B5A4A extends B4A, B3A {}
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   516
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   517
    // ... + most specific return type for getMethod from two unrelated interfaces
42947
2453d65278f3 8062389: Class.getMethod() is inconsistent with Class.getMethods() results
plevart
parents: 24867
diff changeset
   518
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   519
    @MethodDesc(name="m", returnType=Object.class, declaringClass=B2A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   520
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   521
    @MethodDesc(name="m", returnType=Object.class, declaringClass=B2B.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   522
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   523
    @MethodDesc(name="m", returnType=Map.class, declaringClass=B2A.class)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   524
    @MethodDesc(name="m", returnType=HashMap.class, declaringClass=B2B.class,
42947
2453d65278f3 8062389: Class.getMethod() is inconsistent with Class.getMethods() results
plevart
parents: 24867
diff changeset
   525
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   526
    interface B3AB extends B2A, B2B {}
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   527
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   528
    @MethodDesc(name="m", returnType=Object.class, declaringClass=B2A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   529
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   530
    @MethodDesc(name="m", returnType=Object.class, declaringClass=B2B.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   531
            kind = MethodKind.DEFAULT)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   532
    @MethodDesc(name="m", returnType=Map.class, declaringClass=B2A.class)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   533
    @MethodDesc(name="m", returnType=HashMap.class, declaringClass=B2B.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   534
            isGetMethodReturn=true)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   535
    interface B3BA extends B2B, B2A {}
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   536
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   537
    // same name different params type
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   538
    interface A1 { void m(); void m(int i); void m(int i, int j); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   539
    interface A2A extends A1 { void m(); void m(int i); void m(int i, int j); }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   540
    interface A2B extends A1 { void m(); void m(int i); default void m(int i, int j) {} }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   541
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   542
    @MethodDesc(name="m", parameterTypes = {}, declaringClass=A2A.class,
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   543
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   544
    @MethodDesc(name="m", parameterTypes = {int.class}, declaringClass=A2A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   545
            isGetMethodReturn=true)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   546
    @MethodDesc(name="m", parameterTypes = {int.class, int.class}, declaringClass=A2A.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   547
            isGetMethodReturn=true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   548
    interface A3A extends A1, A2A {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   549
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   550
    @MethodDesc(name="m", parameterTypes = {}, declaringClass=A2B.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   551
            isGetMethodReturn=true)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   552
    @MethodDesc(name="m", parameterTypes = {int.class}, declaringClass=A2B.class,
42947
2453d65278f3 8062389: Class.getMethod() is inconsistent with Class.getMethods() results
plevart
parents: 24867
diff changeset
   553
            isGetMethodReturn=true)
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   554
    @MethodDesc(name="m", parameterTypes = {int.class, int.class}, declaringClass=A2B.class,
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   555
            kind = MethodKind.DEFAULT, isGetMethodReturn=true)
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   556
    interface A3B extends A1, A2B {}
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   557
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   558
    // method in directly implemented interface overrides interface method
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   559
    // inherited by superclass
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   560
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   561
    interface E { void m(); }
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   562
    interface F extends E { void m(); }
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   563
    abstract class G implements E {}
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   564
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   565
    @MethodDesc(name="m", declaringClass=F.class, isGetMethodReturn=true)
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   566
    abstract class H extends G implements F {}
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   567
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   568
    @DataProvider
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   569
    public Object[][] getCases() { return CASES; }
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   570
    public static final Class<?>[][] CASES =  {
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   571
        { K1.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   572
        { K1M.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   573
        { K2.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   574
        { K2O.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   575
        { K2M.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   576
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   577
        { N1.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   578
        { N1D.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   579
        { N1N.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   580
        { N1DN.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   581
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   582
        { N2.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   583
        { N22.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   584
        { N2D.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   585
        { N2N.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   586
        { N2DN.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   587
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   588
        { P1.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   589
        { P2.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   590
        { P3.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   591
        { P4.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   592
        { P5.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   593
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   594
        { O1.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   595
        { O2.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   596
        { O3.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   597
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   598
        { C1.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   599
        { C2.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   600
        { C3.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   601
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   602
        { C4.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   603
        { C5.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   604
        { C6.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   605
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   606
        { R1.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   607
        { R2.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   608
        { R3.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   609
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   610
        { R4.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   611
        { R5.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   612
        { R6.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   613
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   614
        { R7.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   615
        { R8.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   616
        { R9.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   617
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   618
        { Z31.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   619
        { Z32.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   620
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   621
        { Z41.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   622
        { Z42.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   623
        { Z43.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   624
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   625
        { ZC41.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   626
        { ZC42.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   627
        { ZC43.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   628
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   629
        { ZZ1.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   630
        { ZZ2.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   631
        { ZZ3.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   632
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   633
        { X3.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   634
        { X31.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   635
        { X32.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   636
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   637
        { X41.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   638
        { X42.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   639
        { X43.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   640
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   641
        { XC41.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   642
        { XC42.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   643
        { XC43.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   644
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   645
        { B3A.class },
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   646
        { B4A.class },
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   647
        { B5A2.class },
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   648
        { B5A4A.class },
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   649
        { B3AB.class },
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   650
        { B3BA.class },
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   651
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   652
        { A3A.class },
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   653
        { A3B.class },
42997
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   654
5f83f2054eca 8172190: Re-apply the fix for bugs 8062389, 8029459, 8061950
plevart
parents: 42948
diff changeset
   655
        { H.class },
24867
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   656
    };
c3514175b6cd 8029674: (reflect) getMethods returns default methods that are not members of the class
jfranck
parents:
diff changeset
   657
}