RFR 8u20: JDK-8029674: (reflect) getMethods returns default methods that are not members of the class

Joe Darcy joe.darcy at oracle.com
Mon Jun 16 17:38:56 UTC 2014


Hi Joel,

The 8u version looks fine; thanks,

-Joe

On 06/16/2014 03:57 AM, Joel Borggrén-Franck wrote:
> Hi,
>
> Can I get a review for this almost trivial 8u20 back port. The 9 fix reviewed here: http://mail.openjdk.java.net/pipermail/core-libs-dev/2014-June/027173.html  applies cleanly except one hunk fails due to a non-backported change updating a for to a for each:
>
> $ cat src/share/classes/java/lang/Class.java.rej
> --- Class.java
> +++ Class.java
> @@ -2819,7 +2894,7 @@
>           // the end.
>           MethodArray inheritedMethods = new MethodArray();
>           for (Class<?> i : getInterfaces()) {
> -            inheritedMethods.addAllNonStatic(i.privateGetPublicMethods());
> +            inheritedMethods.addInterfaceMethods(i.privateGetPublicMethods());
>           }
>           if (!isInterface()) {
>               Class<?> c = getSuperclass();
>
> In 8u the hunk needs to be:
>
> @@ -2819,9 +2894,8 @@
>           // out concrete implementations inherited from superclasses at
>           // the end.
>           MethodArray inheritedMethods = new MethodArray();
> -        Class<?>[] interfaces = getInterfaces();
> -        for (int i = 0; i < interfaces.length; i++) {
> -            inheritedMethods.addAllNonStatic(interfaces[i].privateGetPublicMethods());
> +        for (Class<?> i : getInterfaces()) {
> +            inheritedMethods.addInterfaceMethods(i.privateGetPublicMethods());
>           }
>           if (!isInterface()) {
>               Class<?> c = getSuperclass();
>
> 8u webrev here: http://cr.openjdk.java.net/~jfranck/8029674/jdk8u/webrev.8u.00/
> 9 Bug here: http://bugs.openjdk.java.net/browse/JDK-8029674
>
> cheers
> /Joel




More information about the core-libs-dev mailing list