The java.lang.Integer.parseInt(String) method in the reference implementation, now accepts "+", however, if just "+" is passed, a NumberFormatException should be thrown.
The reference implementation does not currently behave in this manner, however, a new bug has been created stating that this behaviour is expected: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6576055. Here is the Changelog: 2007-07-03 Tania Bento <[EMAIL PROTECTED]> * java/lang/Integer.java: (parseInt(String,int,boolean)): Throw NumberFormatException if String is just "+".
Index: java/lang/Integer.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/Integer.java,v retrieving revision 1.35 diff -u -r1.35 Integer.java --- java/lang/Integer.java 10 Dec 2006 20:25:44 -0000 1.35 +++ java/lang/Integer.java 3 Jul 2007 14:56:25 -0000 @@ -705,10 +705,13 @@ if (len == 0) throw new NumberFormatException("string length is null"); int ch = str.charAt(index); - if (ch == '-') + if (ch == '-' || ch == '+') { if (len == 1) - throw new NumberFormatException("pure '-'"); + if (ch == '-') + throw new NumberFormatException("pure '-'"); + else if (ch == '+') + throw new NumberFormatException("pure '+'"); isNeg = true; ch = str.charAt(++index); }