Code review request: bugs 6480728 and 6655735 in the wrapper classes (original) (raw)

Joseph D. Darcy Joe.Darcy at Sun.COM
Wed Oct 7 20:27:58 UTC 2009


Hello.

Please review these simple cleanup fixes in the wrapper classes:

6480728: Byte.valueOf(byte) returns a cached value but Byte.valueOf(String) 6655735: Integer.toString() and String.valueOf(int) contain slow delegations

The fix for the first bug is for the valueOf(String) and decode methods in Byte and Short to return objects after going through the cache. This behavior is already present in Integer and Long.

The second fix changes method calls in various wrapper classes and in String to go to the Foo -> String method most directly implementing the desired conversion

Patch is below; webrev at http://cr.openjdk.java.net/~darcy/6480728.0/

-Joe

--- old/src/share/classes/java/lang/Byte.java 2009-10-07 12🔞04.000000000 -0700 +++ new/src/share/classes/java/lang/Byte.java 2009-10-07 12🔞03.000000000 -0700 @@ -201,7 +201,7 @@ */ public static Byte valueOf(String s, int radix) throws NumberFormatException {

@@ -277,7 +277,7 @@ if (i < MIN_VALUE || i > MAX_VALUE) throw new NumberFormatException( "Value " + i + " out of range from input " + nm);

@@ -374,7 +374,7 @@ * base 10. */ public String toString() {

--- old/src/share/classes/java/lang/Double.java 2009-10-07 12🔞04.000000000 -0700 +++ new/src/share/classes/java/lang/Double.java 2009-10-07 12🔞04.000000000 -0700 @@ -629,7 +629,7 @@ * @see java.lang.Double#toString(double) */ public String toString() {

--- old/src/share/classes/java/lang/Float.java 2009-10-07 12🔞05.000000000 -0700 +++ new/src/share/classes/java/lang/Float.java 2009-10-07 12🔞05.000000000 -0700 @@ -551,7 +551,7 @@ * @see java.lang.Float#toString(float) */ public String toString() {

--- old/src/share/classes/java/lang/Integer.java 2009-10-07 12🔞06.000000000 -0700 +++ new/src/share/classes/java/lang/Integer.java 2009-10-07 12🔞06.000000000 -0700 @@ -746,7 +746,7 @@ * base 10. */ public String toString() {

--- old/src/share/classes/java/lang/Long.java 2009-10-07 12🔞07.000000000 -0700 +++ new/src/share/classes/java/lang/Long.java 2009-10-07 12🔞07.000000000 -0700 @@ -761,7 +761,7 @@ * base 10. */ public String toString() {

--- old/src/share/classes/java/lang/Short.java 2009-10-07 12🔞08.000000000 -0700 +++ new/src/share/classes/java/lang/Short.java 2009-10-07 12🔞07.000000000 -0700 @@ -170,7 +170,7 @@ */ public static Short valueOf(String s, int radix) throws NumberFormatException {

@@ -282,7 +282,7 @@ if (i < MIN_VALUE || i > MAX_VALUE) throw new NumberFormatException( "Value " + i + " out of range from input " + nm);

@@ -379,7 +379,7 @@ * base 10. */ public String toString() {

--- old/src/share/classes/java/lang/String.java 2009-10-07 12🔞08.000000000 -0700 +++ new/src/share/classes/java/lang/String.java 2009-10-07 12🔞08.000000000 -0700 @@ -2995,7 +2995,7 @@ * @see java.lang.Integer#toString(int, int) */ public static String valueOf(int i) {

@@ -3009,7 +3009,7 @@ * @see java.lang.Long#toString(long) */ public static String valueOf(long l) {



More information about the core-libs-dev mailing list