Compiler crash on annotation handling
Werner Dietl
wdietl at gmail.com
Mon Jul 15 10:41:55 PDT 2013
Joel, all,
I added a test case in the type-annotations repository at:
langtools/test/tools/javac/annotations/typeAnnotations/failures/TypeVariableMissingTA.java
It currently results in the NullPointerException reproduced below.
The simplest fix is to add a guard against null. But I wanted to check
whether we should look at a more general solution, setting the
annotation position to non-null even for invalid annotation types.
Thoughts?
Thanks,
cu, WMD.
java.lang.NullPointerException
at com.sun.tools.javac.code.Symbol$TypeVariableSymbol.onlyTypeVariableAnnotations(Symbol.java:778)
at com.sun.tools.javac.code.Symbol$TypeVariableSymbol.getAnnotationMirrors(Symbol.java:770)
at com.sun.tools.javac.model.JavacElements.getAllAnnotationMirrors(JavacElements.java:408)
at com.sun.tools.javac.model.JavacElements.getAllAnnotationMirrors(JavacElements.java:61)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ComputeAnnotationSet.addAnnotations(JavacProcessingEnvironment.java:777)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ComputeAnnotationSet.scan(JavacProcessingEnvironment.java:785)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ComputeAnnotationSet.scan(JavacProcessingEnvironment.java:746)
at javax.lang.model.util.ElementScanner6.scan(ElementScanner6.java:133)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ComputeAnnotationSet.visitType(JavacProcessingEnvironment.java:764)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ComputeAnnotationSet.visitType(JavacProcessingEnvironment.java:746)
at com.sun.tools.javac.code.Symbol$ClassSymbol.accept(Symbol.java:1076)
at javax.lang.model.util.ElementScanner6.scan(ElementScanner6.java:146)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ComputeAnnotationSet.scan(JavacProcessingEnvironment.java:786)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.findAnnotationsPresent(JavacProcessingEnvironment.java:981)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.<init>(JavacProcessingEnvironment.java:879)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1163)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1146)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:832)
at com.sun.tools.javac.main.Main.compile(Main.java:518)
at com.sun.tools.javac.main.Main.compile(Main.java:376)
at com.sun.tools.javac.main.Main.compile(Main.java:365)
at com.sun.tools.javac.main.Main.compile(Main.java:356)
at com.sun.tools.javac.Main.compile(Main.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.sun.javatest.regtest.RegressionCompileCommand.run(RegressionCompileCommand.java:247)
at com.sun.javatest.regtest.CompileAction.runCompile(CompileAction.java:556)
at com.sun.javatest.regtest.CompileAction.runSameJVM(CompileAction.java:395)
at com.sun.javatest.regtest.CompileAction.run(CompileAction.java:250)
at com.sun.javatest.regtest.RegressionScript.run(RegressionScript.java:146)
at com.sun.javatest.Script.run(Script.java:228)
at com.sun.javatest.DefaultTestRunner.runTest(DefaultTestRunner.java:174)
at com.sun.javatest.DefaultTestRunner.access$100(DefaultTestRunner.java:43)
at com.sun.javatest.DefaultTestRunner$1.run(DefaultTestRunner.java:66)
--
http://www.google.com/profiles/wdietl
More information about the type-annotations-dev
mailing list