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.