[commit-cp] classpath ChangeLog java/util/Formatter.java

Pekka Enberg <[email protected]> Wed, 16 Feb 2011 19:44:29 +0000
Newsgroups gmane.comp.java.classpath.cvs
Message-ID <[email protected]>
CVSROOT:	/sources/classpath
Module name:	classpath
Changes by:	Pekka Enberg <penberg>	11/02/16 19:44:29

Modified files:
	.              : ChangeLog 
	java/util      : Formatter.java 

Log message:
	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 <[email protected]>
	
	2010-02-16  Pekka Enberg  <[email protected]>
	
	       * 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.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.9815&r2=1.9816
http://cvs.savannah.gnu.org/viewcvs/classpath/java/util/Formatter.java?cvsroot=classpath&r1=1.7&r2=1.8