summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPekka Enberg <penberg@kernel.org>2011-02-16 19:44:28 +0000
committerPekka Enberg <penberg@kernel.org>2011-02-16 19:44:28 +0000
commiteace3ded0136a5bbe99eef4d0bbb13798c38f99a (patch)
tree2567b42b7cd5dd505c730797dfde086f93cf2cdd
parentd7390c930d8f10c84902ee8ec008735939584541 (diff)
downloadclasspath-eace3ded0136a5bbe99eef4d0bbb13798c38f99a.tar.gz
Fix Formatter.parseInt() wrt. leading zeroes
The following test case: public class StringTest { public static void main(String[] args) { System.out.println(String.format("%08x", 1234)); } } produces the following error: Exception in thread "main" java.lang.NumberFormatException: invalid character at position 2 in 08 at java.lang.Integer.parseInt(Integer.java:837) at java.lang.Integer.decode(Integer.java:568) at java.util.Formatter.parseInt(Formatter.java:1191) at java.util.Formatter.parseArgumentIndex(Formatter.java:1212) at java.util.Formatter.format(Formatter.java:1326) at java.util.Formatter.format(Formatter.java:1442) at java.lang.String.format(String.java:1984) at java.lang.String.format(String.java:1990) at StringTest.main(StringTest.java:3) This patch fixes the issue by switching to Integer.parseInt() in java.util.Formatter.parseInt(). Reviewed-by: Dr Andrew John Hughes <gnu_andrew@member.fsf.org> 2010-02-16 Pekka Enberg <penberg@kernel.org> * java/util/Formatter.java: (parseInt): Use Integer.parseInt() insted of Integer.decode() because the latter doesn't work with leading zeros which are used in String.format() formatting, for example.
-rw-r--r--ChangeLog7
-rw-r--r--java/util/Formatter.java2
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index a575fb9f4..f1c7c3183 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-02-16 Pekka Enberg <penberg@kernel.org>
+
+ * java/util/Formatter.java:
+ (parseInt): Use Integer.parseInt() insted of Integer.decode()
+ because the latter doesn't work with leading zeros which are
+ used in String.format() formatting, for example.
+
2010-07-02 Ivan Maidanski <ivmai@mail.ru>
* java/util/regex/Pattern.java:
diff --git a/java/util/Formatter.java b/java/util/Formatter.java
index 04ae8058d..62f684562 100644
--- a/java/util/Formatter.java
+++ b/java/util/Formatter.java
@@ -1188,7 +1188,7 @@ public final class Formatter
advance();
if (start == index)
return -1;
- return Integer.decode(format.substring(start, index));
+ return Integer.parseInt(format.substring(start, index));
}
/**