@@ -0,0 +1,1203 @@
+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_2012_09_27 %7B%0A%0A    @Documented%0A    @Retention(RetentionPolicy.RUNTIME)%0A    @TypeQualifier%0A    public @interface PK %7B%0A    %7D%0A%0A    @PK%0A    long getLongKey() %7B%0A        return 42;%0A    %7D%0A%0A    void setLongKey(@PK long key) %7B%0A%0A    %7D%0A%0A    @PK%0A    Long getBoxedLongKey() %7B%0A        return 42L;%0A    %7D%0A%0A    void setBoxedLongKey(@PK Long key) %7B%0A%0A    %7D%0A%0A    @PK%0A    double getDoubleKey() %7B%0A        return 42;%0A    %7D%0A%0A    void setDoubleKey(@PK double key) %7B%0A%0A    %7D%0A%0A    @PK%0A    Double getBoxedDoubleKey() %7B%0A        return 42.0;%0A    %7D%0A%0A    void setBoxedDoubleKey(@PK Double key) %7B%0A%0A    %7D%0A    %0A    @NoWarning(%22TQ%22)%0A    void boxLong() %7B%0A        setBoxedLongKey(getLongKey());%0A    %7D%0A%0A    @NoWarning(%22TQ%22)%0A    void unboxLong() %7B%0A        setLongKey(getBoxedLongKey());%0A    %7D%0A%0A    @NoWarning(%22TQ%22)%0A    void boxDouble() %7B%0A        setBoxedDoubleKey(getDoubleKey());%0A    %7D%0A%0A    @NoWarning(%22TQ%22)%0A    void unboxDouble() %7B%0A        setDoubleKey(getBoxedDoubleKey());%0A    %7D%0A%0A%7D%0A

test case checking that boxing/unboxing is treated as type qualified identity for types other than Integer.