diff -r 30a415f8667f -r 6542933af8f4 src/share/classes/com/sun/tools/javac/comp/MemberEnter.java --- a/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Fri Aug 08 17:38:20 2008 +0100 +++ b/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Fri Aug 08 17:43:24 2008 +0100 @@ -627,8 +627,11 @@ tree.sym = v; if (tree.init != null) { v.flags_field |= HASINIT; - if ((v.flags_field & FINAL) != 0 && tree.init.getTag() != JCTree.NEWCLASS) - v.setLazyConstValue(initEnv(tree, env), log, attr, tree.init); + if ((v.flags_field & FINAL) != 0 && tree.init.getTag() != JCTree.NEWCLASS) { + Env initEnv = getInitEnv(tree, env); + initEnv.info.enclVar = v; + v.setLazyConstValue(initEnv(tree, initEnv), log, attr, tree.init); + } } if (chk.checkUnique(tree.pos(), v, enclScope)) { chk.checkTransparentVar(tree.pos(), v, enclScope);