diff -r 31fe30e2deac -r d2fa3f7e964e src/share/classes/com/sun/tools/javac/jvm/Gen.java --- a/src/share/classes/com/sun/tools/javac/jvm/Gen.java Wed Oct 23 15:45:18 2013 -0700 +++ b/src/share/classes/com/sun/tools/javac/jvm/Gen.java Wed Oct 23 23:20:32 2013 -0400 @@ -1652,9 +1652,10 @@ startpc, end, code.curCP(), catchType); if (subCatch.type.isAnnotated()) { - // All compounds share the same position, simply update the - // first one. - subCatch.type.getAnnotationMirrors().head.position.type_index = catchType; + for (Attribute.TypeCompound tc : + subCatch.type.getAnnotationMirrors()) { + tc.position.type_index = catchType; + } } } gaps = gaps.tail; @@ -1668,9 +1669,10 @@ startpc, endpc, code.curCP(), catchType); if (subCatch.type.isAnnotated()) { - // All compounds share the same position, simply update the - // first one. - subCatch.type.getAnnotationMirrors().head.position.type_index = catchType; + for (Attribute.TypeCompound tc : + subCatch.type.getAnnotationMirrors()) { + tc.position.type_index = catchType; + } } } }