JSR 308 type annotations on type parameters are not visible when doing the annotation processing of java *class* files. For example, if I compile the sample class T below and run my simple annotation processor (source attached) that prints contents of the processed java class, then the "@X" annotation on the "A" type variable is not printed out:
====
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@interface X {}
public class T {
public <@X A> void foo() {}
}
====
# jdk7/bin/javac MyProcessor.java T.java
# jdk7/bin/javac -processor MyProcessor T
TypeParam: A
TypeParamAnnotation:
However, the annotation processing of the java source works fine (before b70):
# jdk7_69/bin/javac -processor MyProcessor T.java
TypeParam: A
TypeParamAnnotation: @X
Note that the annotation processor behaves as reported with promoted builds 64 through 69 (JSR 308 support was added in b64). Starting b70 the annotation processing of source files has stopped working. See separate CR 6876891.