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

Joel Borggrén-Franck joel.franck at oracle.com
Mon Jun 16 10:57:57 UTC 2014


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