-
Bug
-
Resolution: Won't Fix
-
P3
-
6, 7
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2187690 | 7 | Jonathan Gibbons | P3 | Closed | Fixed | b86 |
The javac doesn't fail while processing the attached negative JCK lang tests if an annotation processor is specified. Consider steps to reproduce the problem using the simple annotation processor below.
===DummyProcessor.java===
import javax.annotation.processing.AbstractProcessor;
import javax.lang.model.element.TypeElement;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedSourceVersion;
import java.util.Set;
import javax.lang.model.SourceVersion;
@SupportedSourceVersion(SourceVersion.RELEASE_6)
@SupportedAnnotationTypes("*")
public class DummyProcessor extends AbstractProcessor {
public boolean process(Set<? extends TypeElement> elems,
RoundEnvironment renv) {
return false;
}
}
===
Steps to reproduce:
===
<ag153348@spb-orion> javac clss41701.java
clss41701.java:18: a type variable may not be followed by other bounds
C extends A&B> {
^
1 error
<ag153348@spb-orion> javac DummyProcessor.java
<ag153348@spb-orion> javac -cp . -processor DummyProcessor clss41701.java
clss41701.java:18: a type variable may not be followed by other bounds
C extends A&B> {
^
<ag153348@spb-orion> ls *.class
DummyProcessor.class clss41701a.class
clss41701.class clss41701i.class
===
As you can see if an annotation processor specified the javac generates output classes.
===DummyProcessor.java===
import javax.annotation.processing.AbstractProcessor;
import javax.lang.model.element.TypeElement;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedSourceVersion;
import java.util.Set;
import javax.lang.model.SourceVersion;
@SupportedSourceVersion(SourceVersion.RELEASE_6)
@SupportedAnnotationTypes("*")
public class DummyProcessor extends AbstractProcessor {
public boolean process(Set<? extends TypeElement> elems,
RoundEnvironment renv) {
return false;
}
}
===
Steps to reproduce:
===
<ag153348@spb-orion> javac clss41701.java
clss41701.java:18: a type variable may not be followed by other bounds
C extends A&B> {
^
1 error
<ag153348@spb-orion> javac DummyProcessor.java
<ag153348@spb-orion> javac -cp . -processor DummyProcessor clss41701.java
clss41701.java:18: a type variable may not be followed by other bounds
C extends A&B> {
^
<ag153348@spb-orion> ls *.class
DummyProcessor.class clss41701a.class
clss41701.class clss41701i.class
===
As you can see if an annotation processor specified the javac generates output classes.
- backported by
-
JDK-2187690 javac unexpectedly doesn't fail in some cases if an annotation processor specified
-
- Closed
-