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
--- 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))