DefaultAnnotation appears to be applied for any access to a class, including methods/fields generated by the compiler (synthetic access).
See NPNonNullReturnViolationBug:
The DefaultAnnotation(NonNull.class) is (incorrectly?) applied to the compiler generated private method used by the anonymous class for reading junkField.
Similarly, any compiler generated access will ignore all annotations that may exist.
See NonNullFalseNegative:
The CheckForNull annotation on the private field, but is ignored when called from the anonymous inner class.
I imagine the first problem could be fixed by not applying DefaultAnnotation (or any other 'default' style annotation), to synthetic methods or fields.
File Added: NonNullFalseNegative.java
should generate a violation, but currently does not.
Fixed the false positive.
The false negative will require a little more thought/work.