1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Thu Sep 19 08:26:26 2013 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Thu Sep 19 20:57:37 2013 +0100 1.3 @@ -56,6 +56,7 @@ 1.4 import static com.sun.tools.javac.code.Flags.*; 1.5 import static com.sun.tools.javac.code.Kinds.*; 1.6 import static com.sun.tools.javac.code.TypeTag.CLASS; 1.7 +import static com.sun.tools.javac.code.TypeTag.TYPEVAR; 1.8 import static com.sun.tools.javac.jvm.ClassFile.*; 1.9 import static com.sun.tools.javac.jvm.ClassFile.Version.*; 1.10 1.11 @@ -703,6 +704,12 @@ 1.12 sigp++; 1.13 thrown = thrown.prepend(sigToType()); 1.14 } 1.15 + // if there is a typevar in the throws clause we should state it. 1.16 + for (List<Type> l = thrown; l.nonEmpty(); l = l.tail) { 1.17 + if (l.head.hasTag(TYPEVAR)) { 1.18 + l.head.tsym.flags_field |= THROWS; 1.19 + } 1.20 + } 1.21 return new MethodType(argtypes, 1.22 restype, 1.23 thrown.reverse(),