1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Mon Aug 27 10:59:13 2012 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Fri Aug 31 10:37:46 2012 +0100 1.3 @@ -1321,7 +1321,7 @@ 1.4 else 1.5 proxies.append(proxy); 1.6 } 1.7 - annotate.later(new AnnotationCompleter(sym, proxies.toList())); 1.8 + annotate.normal(new AnnotationCompleter(sym, proxies.toList())); 1.9 } 1.10 } 1.11 1.12 @@ -1347,7 +1347,7 @@ 1.13 void attachAnnotationDefault(final Symbol sym) { 1.14 final MethodSymbol meth = (MethodSymbol)sym; // only on methods 1.15 final Attribute value = readAttributeValue(); 1.16 - annotate.later(new AnnotationDefaultCompleter(meth, value)); 1.17 + annotate.normal(new AnnotationDefaultCompleter(meth, value)); 1.18 } 1.19 1.20 Type readTypeOrClassSymbol(int i) { 1.21 @@ -1693,10 +1693,13 @@ 1.22 JavaFileObject previousClassFile = currentClassFile; 1.23 try { 1.24 currentClassFile = classFile; 1.25 + Annotations annotations = sym.annotations; 1.26 List<Attribute.Compound> newList = deproxyCompoundList(l); 1.27 - sym.attributes_field = ((sym.attributes_field == null) 1.28 - ? newList 1.29 - : newList.prependList(sym.attributes_field)); 1.30 + if (annotations.pendingCompletion()) { 1.31 + annotations.setAttributes(newList); 1.32 + } else { 1.33 + annotations.append(newList); 1.34 + } 1.35 } finally { 1.36 currentClassFile = previousClassFile; 1.37 }