Index: compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java,v retrieving revision 1.128 diff -u -r1.128 Scanner.java --- compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java 9 Nov 2004 10:28:28 -0000 1.128 +++ compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java 18 Nov 2004 04:16:07 -0000 @@ -3062,7 +3062,13 @@ } // hexadeciman floating point literal // read decimal part + boolean hasNoDigitsBeforeDot = end == start; + start = this.currentPosition; while (getNextCharAsDigit(16)){/*empty*/} + end = this.currentPosition; + if (hasNoDigitsBeforeDot && end == start) { + throw new InvalidInputException(INVALID_HEXA); + } if (getNextChar('p', 'P') >= 0) { // consume next character this.unicodeAsBackSlash = false; Index: model/org/eclipse/jdt/internal/core/util/PublicScanner.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/PublicScanner.java,v retrieving revision 1.57 diff -u -r1.57 PublicScanner.java --- model/org/eclipse/jdt/internal/core/util/PublicScanner.java 9 Nov 2004 11:09:34 -0000 1.57 +++ model/org/eclipse/jdt/internal/core/util/PublicScanner.java 18 Nov 2004 04:16:09 -0000 @@ -3059,7 +3059,13 @@ } // hexadeciman floating point literal // read decimal part + boolean hasNoDigitsBeforeDot = end == start; + start = this.currentPosition; while (getNextCharAsDigit(16)){/*empty*/} + end = this.currentPosition; + if (hasNoDigitsBeforeDot && end == start) { + throw new InvalidInputException(INVALID_HEXA); + } if (getNextChar('p', 'P') >= 0) { // consume next character this.unicodeAsBackSlash = false;