-
Bug
-
Resolution: Duplicate
-
P3
-
9
-
b154
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8174488 | 10 | Srikanth Adayapalam | P3 | Resolved | Fixed | b01 |
JDK-8173167 | 9 | Srikanth Adayapalam | P3 | Resolved | Fixed | team |
The following program crashes during annotation processing with javac 9-ea+149:
===
import java.util.Set;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
@SupportedAnnotationTypes("*")
public class SimpleProcessor extends AbstractProcessor {
@Override
public SourceVersion getSupportedSourceVersion() {
return SourceVersion.latestSupported();
}
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
return false;
}
}
===
===
class Test<Override> {
Test(@Override String foo) {}
}
===
$ javac SimpleProcessor.java
$ javac -processor SimpleProcessor Test.java
java.lang.AssertionError: Only on ClassSymbol
at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:162)
at jdk.compiler/com.sun.tools.javac.code.Symbol$TypeSymbol.getAnnotationTypeMetadata(Symbol.java:811)
at jdk.compiler/com.sun.tools.javac.comp.Check.getAttributeTargetAttribute(Check.java:3140)
at jdk.compiler/com.sun.tools.javac.comp.Check.annotationApplicable(Check.java:3074)
at jdk.compiler/com.sun.tools.javac.comp.Check.validateAnnotation(Check.java:2824)
at jdk.compiler/com.sun.tools.javac.comp.Check.validateAnnotations(Check.java:2809)
at jdk.compiler/com.sun.tools.javac.comp.Annotate.lambda$annotateLater$1(Annotate.java:258)
at jdk.compiler/com.sun.tools.javac.comp.Annotate.flush(Annotate.java:186)
at jdk.compiler/com.sun.tools.javac.comp.Annotate.unblockAnnotations(Annotate.java:134)
at jdk.compiler/com.sun.tools.javac.comp.Enter.complete(Enter.java:591)
at jdk.compiler/com.sun.tools.javac.comp.Enter.main(Enter.java:546)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:1069)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:940)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:307)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:160)
at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:55)
at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:41)
===
import java.util.Set;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
@SupportedAnnotationTypes("*")
public class SimpleProcessor extends AbstractProcessor {
@Override
public SourceVersion getSupportedSourceVersion() {
return SourceVersion.latestSupported();
}
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
return false;
}
}
===
===
class Test<Override> {
Test(@Override String foo) {}
}
===
$ javac SimpleProcessor.java
$ javac -processor SimpleProcessor Test.java
java.lang.AssertionError: Only on ClassSymbol
at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:162)
at jdk.compiler/com.sun.tools.javac.code.Symbol$TypeSymbol.getAnnotationTypeMetadata(Symbol.java:811)
at jdk.compiler/com.sun.tools.javac.comp.Check.getAttributeTargetAttribute(Check.java:3140)
at jdk.compiler/com.sun.tools.javac.comp.Check.annotationApplicable(Check.java:3074)
at jdk.compiler/com.sun.tools.javac.comp.Check.validateAnnotation(Check.java:2824)
at jdk.compiler/com.sun.tools.javac.comp.Check.validateAnnotations(Check.java:2809)
at jdk.compiler/com.sun.tools.javac.comp.Annotate.lambda$annotateLater$1(Annotate.java:258)
at jdk.compiler/com.sun.tools.javac.comp.Annotate.flush(Annotate.java:186)
at jdk.compiler/com.sun.tools.javac.comp.Annotate.unblockAnnotations(Annotate.java:134)
at jdk.compiler/com.sun.tools.javac.comp.Enter.complete(Enter.java:591)
at jdk.compiler/com.sun.tools.javac.comp.Enter.main(Enter.java:546)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:1069)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:940)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:307)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:160)
at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:55)
at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:41)
- backported by
-
JDK-8173167 AssertionError in TypeSymbol.getAnnotationTypeMetadata
-
- Resolved
-
-
JDK-8174488 AssertionError in TypeSymbol.getAnnotationTypeMetadata
-
- Resolved
-
- duplicates
-
JDK-8173167 AssertionError in TypeSymbol.getAnnotationTypeMetadata
-
- Resolved
-