changeset 8038:9cc74675a854

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
author rfield
date Thu, 05 Sep 2013 14:58:49 -0700
parents 4c711ef41bfa
children f2487bb0c0d2
files src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	Thu Sep 05 10:14:53 2013 -0700
+++ b/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))