Type Annotation on array level in nested class of anonymous class results in NPE at
com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:792)
Test case attached.
Full stack trace:
---------- javac ----------
An exception has occurred in the compiler (1.8.0-ea). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:792)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.findPosition(TypeAnnotations.java:1083)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitAnnotatedType(TypeAnnotations.java:1022)
at com.sun.tools.javac.tree.JCTree$JCAnnotatedType.accept(JCTree.java:2330)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitVarDef(TypeAnnotations.java:1003)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:828)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitClassDef(TypeAnnotations.java:898)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:686)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135)
at com.sun.tools.javac.code.TypeAnnotations$1.enterAnnotation(TypeAnnotations.java:92)
at com.sun.tools.javac.comp.Annotate.flush(Annotate.java:140)
at com.sun.tools.javac.comp.MemberEnter.visitVarDef(MemberEnter.java:693)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:828)
at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:419)
at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:431)
at com.sun.tools.javac.comp.MemberEnter.finishClass(MemberEnter.java:441)
at com.sun.tools.javac.comp.MemberEnter.finish(MemberEnter.java:1233)
at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:1085)
at com.sun.tools.javac.code.Symbol.complete(Symbol.java:434)
at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:875)
at com.sun.tools.javac.comp.Attr.visitClassDef(Attr.java:855)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:686)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:646)
at com.sun.tools.javac.comp.Attr.visitNewClass(Attr.java:2108)
at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1491)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.DeferredAttr.attribSpeculative(DeferredAttr.java:303)
at com.sun.tools.javac.comp.DeferredAttr$1.complete(DeferredAttr.java:235)
at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:202)
at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:190)
at com.sun.tools.javac.comp.Resolve$MethodResultInfo.check(Resolve.java:823)
at com.sun.tools.javac.comp.Resolve$2.argumentsAcceptable(Resolve.java:703)
at com.sun.tools.javac.comp.Resolve.rawInstantiate(Resolve.java:567)
at com.sun.tools.javac.comp.Resolve.selectBest(Resolve.java:1256)
at com.sun.tools.javac.comp.Resolve.findMethodInScope(Resolve.java:1425)
at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1497)
at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1469)
at com.sun.tools.javac.comp.Resolve.findFun(Resolve.java:1633)
at com.sun.tools.javac.comp.Resolve$6.lookup(Resolve.java:2130)
at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:2834)
at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:2819)
at com.sun.tools.javac.comp.Resolve.resolveMethod(Resolve.java:2127)
at com.sun.tools.javac.comp.Attr.visitIdent(Attr.java:2957)
at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:1969)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1800)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1440)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:626)
at com.sun.tools.javac.comp.Attr.visitExec(Attr.java:1572)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1271)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:646)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:662)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1119)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:884)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:646)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1021)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:771)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:646)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4083)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:3991)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:3925)
at com.sun.tools.javac.comp.Attr.attrib(Attr.java:3899)
at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1256)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:909)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:868)
at com.sun.tools.javac.main.Main.compile(Main.java:506)
at com.sun.tools.javac.main.Main.compile(Main.java:365)
at com.sun.tools.javac.main.Main.compile(Main.java:354)
at com.sun.tools.javac.main.Main.compile(Main.java:345)
at com.sun.tools.javac.Main.compile(Main.java:77)
at com.sun.tools.javac.Main.main(Main.java:62)
Output completed (1 sec consumed)
com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:792)
Test case attached.
Full stack trace:
---------- javac ----------
An exception has occurred in the compiler (1.8.0-ea). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:792)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.findPosition(TypeAnnotations.java:1083)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitAnnotatedType(TypeAnnotations.java:1022)
at com.sun.tools.javac.tree.JCTree$JCAnnotatedType.accept(JCTree.java:2330)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitVarDef(TypeAnnotations.java:1003)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:828)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitClassDef(TypeAnnotations.java:898)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:686)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135)
at com.sun.tools.javac.code.TypeAnnotations$1.enterAnnotation(TypeAnnotations.java:92)
at com.sun.tools.javac.comp.Annotate.flush(Annotate.java:140)
at com.sun.tools.javac.comp.MemberEnter.visitVarDef(MemberEnter.java:693)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:828)
at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:419)
at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:431)
at com.sun.tools.javac.comp.MemberEnter.finishClass(MemberEnter.java:441)
at com.sun.tools.javac.comp.MemberEnter.finish(MemberEnter.java:1233)
at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:1085)
at com.sun.tools.javac.code.Symbol.complete(Symbol.java:434)
at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:875)
at com.sun.tools.javac.comp.Attr.visitClassDef(Attr.java:855)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:686)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:646)
at com.sun.tools.javac.comp.Attr.visitNewClass(Attr.java:2108)
at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1491)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.DeferredAttr.attribSpeculative(DeferredAttr.java:303)
at com.sun.tools.javac.comp.DeferredAttr$1.complete(DeferredAttr.java:235)
at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:202)
at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:190)
at com.sun.tools.javac.comp.Resolve$MethodResultInfo.check(Resolve.java:823)
at com.sun.tools.javac.comp.Resolve$2.argumentsAcceptable(Resolve.java:703)
at com.sun.tools.javac.comp.Resolve.rawInstantiate(Resolve.java:567)
at com.sun.tools.javac.comp.Resolve.selectBest(Resolve.java:1256)
at com.sun.tools.javac.comp.Resolve.findMethodInScope(Resolve.java:1425)
at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1497)
at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1469)
at com.sun.tools.javac.comp.Resolve.findFun(Resolve.java:1633)
at com.sun.tools.javac.comp.Resolve$6.lookup(Resolve.java:2130)
at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:2834)
at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:2819)
at com.sun.tools.javac.comp.Resolve.resolveMethod(Resolve.java:2127)
at com.sun.tools.javac.comp.Attr.visitIdent(Attr.java:2957)
at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:1969)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1800)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1440)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:626)
at com.sun.tools.javac.comp.Attr.visitExec(Attr.java:1572)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1271)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:646)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:662)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1119)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:884)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:646)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1021)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:771)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:601)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:646)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4083)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:3991)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:3925)
at com.sun.tools.javac.comp.Attr.attrib(Attr.java:3899)
at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1256)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:909)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:868)
at com.sun.tools.javac.main.Main.compile(Main.java:506)
at com.sun.tools.javac.main.Main.compile(Main.java:365)
at com.sun.tools.javac.main.Main.compile(Main.java:354)
at com.sun.tools.javac.main.Main.compile(Main.java:345)
at com.sun.tools.javac.Main.compile(Main.java:77)
at com.sun.tools.javac.Main.main(Main.java:62)
Output completed (1 sec consumed)