@@ -0,0 +1,1043 @@
+package bugIdeas;%0A%0Aimport java.lang.annotation.Documented;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0A%0Aimport javax.annotation.meta.TypeQualifier;%0A%0Aimport edu.umd.cs.findbugs.annotations.NoWarning;%0A%0Apublic class Ideas_2011_01_17 %7B%0A    @Documented%0A    @TypeQualifier(applicableTo = Integer.class)%0A    @Retention(RetentionPolicy.RUNTIME)%0A    public @interface PK %7B%0A    %7D%0A%0A    @PK int key = 17;%0A    @NoWarning(%22TQ%22)%0A    @PK int getKeyAsInt() %7B%0A        return key;%0A    %7D%0A    @NoWarning(%22TQ%22)%0A    @PK Integer getKeyAsInteger() %7B%0A        return key;%0A    %7D%0A    @NoWarning(%22TQ%22)%0A    void setKeyAsInt(@PK int key) %7B%0A        this.key = key;%0A    %7D%0A    @NoWarning(%22TQ%22)%0A    void setKeyAsInteger(@PK Integer key) %7B%0A        this.key = key;%0A    %7D%0A    @NoWarning(%22TQ%22)%0A    static void test(Ideas_2011_01_17 x, Ideas_2011_01_17 y) %7B%0A        x.setKeyAsInt(y.getKeyAsInt());%0A        x.setKeyAsInt(y.getKeyAsInteger());%0A        x.setKeyAsInteger(y.getKeyAsInt());%0A        x.setKeyAsInteger(y.getKeyAsInteger());%0A    %7D%0A%0A%0A%7D%0A

Add test case for type qualifiers flowing across boxing/unboxing