8024283: 10 nashorn tests fail with similar stack trace InternalError with cause being NoClassDefFoundError
authorrfield
Thu, 05 Sep 2013 14:58:49 -0700
changeset 19816 4136f2a0645d
parent 19815 5b15fa787fab
child 19817 72338a6a1a4b
8024283: 10 nashorn tests fail with similar stack trace InternalError with cause being NoClassDefFoundError Summary: Fix pre-existing 292 bug tickled by combo of nashorn code and MethodHandleInfo changes Reviewed-by: jrose Contributed-by: vladimir.x.ivanov@oracle.com
jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
--- a/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	Thu Sep 05 10:14:53 2013 -0700
+++ b/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	Thu Sep 05 14:58:49 2013 -0700
@@ -612,6 +612,12 @@
             return false;  // inner class of some sort
         if (cls.getClassLoader() != MethodHandle.class.getClassLoader())
             return false;  // not on BCP
+        MethodType mtype = member.getMethodOrFieldType();
+        if (!isStaticallyNameable(mtype.returnType()))
+            return false;
+        for (Class<?> ptype : mtype.parameterArray())
+            if (!isStaticallyNameable(ptype))
+                return false;
         if (!member.isPrivate() && VerifyAccess.isSamePackage(MethodHandle.class, cls))
             return true;   // in java.lang.invoke package
         if (member.isPublic() && isStaticallyNameable(cls))