diff -r d7e155f874a7 -r 7f6481e5fe3a src/share/classes/com/sun/tools/javac/jvm/ClassReader.java --- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Wed Oct 16 10:47:21 2013 -0700 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Wed Oct 16 16:33:04 2013 -0400 @@ -2405,8 +2405,6 @@ return c; } - private boolean suppressFlush = false; - /** Completion for classes to be loaded. Before a class is loaded * we make sure its enclosing class (if any) is loaded. */ @@ -2414,13 +2412,14 @@ if (sym.kind == TYP) { ClassSymbol c = (ClassSymbol)sym; c.members_field = new Scope.ErrorScope(c); // make sure it's always defined - boolean saveSuppressFlush = suppressFlush; - suppressFlush = true; + annotate.enterStart(); try { completeOwners(c.owner); completeEnclosing(c); } finally { - suppressFlush = saveSuppressFlush; + // The flush needs to happen only after annotations + // are filled in. + annotate.enterDoneWithoutFlush(); } fillIn(c); } else if (sym.kind == PCK) { @@ -2431,7 +2430,7 @@ throw new CompletionFailure(sym, ex.getLocalizedMessage()).initCause(ex); } } - if (!filling && !suppressFlush) + if (!filling) annotate.flush(); // finish attaching annotations }