[9] RFR: 8168921: Inconsistent Annotation.toString()

Ivan Gerasimov ivan.gerasimov at oracle.com
Sun Oct 30 01:42:13 UTC 2016


Hello!

Suppose an annotation is of form

     @interface MyAnnotation {
         long value();
     }

Create the annotation object with 
sun.reflect.annotation.AnnotationParser.annotationForMap(MyAnnotation.class, 
Map.of("value", some_value)).

Annotation.toString() method, called for the object, will produce a 
string containing that 'some_value' with the optional 'L' suffix appended.
Normally, the suffix is not appended for values that can be represented 
with int, and is appended otherwise.
However, the logic does not hold for values Long.MIN_VALUE and 
Integer.MIN_VALUE:  For the former the suffix is not appended and for 
the later the suffix L is appended.

Would you please help review the fix, which removes this tiny inconsistency?

BUGURL: https://bugs.openjdk.java.net/browse/JDK-8168921
WEBREV: http://cr.openjdk.java.net/~igerasim/8168921/00/webrev/

I also took a chance to perform some pico-optimizations around the 
modified code.

With kind regards,
Ivan



More information about the core-libs-dev mailing list