diff -r f8be8bf150c3 -r 9dd34ed62341 src/share/classes/com/sun/tools/javac/parser/JavacParser.java --- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Mon Sep 14 17:13:00 2009 -0700 +++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Tue Sep 15 12:20:55 2009 -0700 @@ -593,7 +593,7 @@ //where boolean isZero(String s) { char[] cs = s.toCharArray(); - int base = ((Character.toLowerCase(s.charAt(1)) == 'x') ? 16 : 10); + int base = ((cs.length > 1 && Character.toLowerCase(cs[1]) == 'x') ? 16 : 10); int i = ((base==16) ? 2 : 0); while (i < cs.length && (cs[i] == '0' || cs[i] == '.')) i++; return !(i < cs.length && (Character.digit(cs[i], base) > 0));