# HG changeset patch # User Tautvydas Andikys aka esminis # Date 1282343166 -10800 # Node ID 5fd9bb8bcc1676a3d5bf1f49615eabd8ce59cbb8 # Parent 34dc8b9e92570d4df9527180d9a02a7ab2e5baa0 Bug 187529 - [69cat] AssertionError: Token length=0 <= 0 diff -r 34dc8b9e9257 -r 5fd9bb8bcc16 languages.ini/src/org/netbeans/modules/languages/ini/IniLexer.java --- a/languages.ini/src/org/netbeans/modules/languages/ini/IniLexer.java Wed Aug 18 17:39:27 2010 +0200 +++ b/languages.ini/src/org/netbeans/modules/languages/ini/IniLexer.java Sat Aug 21 01:26:06 2010 +0300 @@ -185,16 +185,23 @@ processComment(input); } else if (ch == EQUALS) { - // any trailing whitespaces? - String name = input.readText(0, input.readLength()).toString(); - String trimmed = name.replaceAll("\\s+$", ""); // NOI18N - int backup = name.length() - trimmed.length(); - if (backup > 0) { - state = State.WHITESPACE_AFTER_NAME; - input.backup(backup); + if (input.readLength() > 0) { + // any trailing whitespaces? + String name = input.readText(0, input.readLength()).toString(); + String trimmed = name.replaceAll("\\s+$", ""); // NOI18N + int backup = name.length() - trimmed.length(); + if (backup > 0) { + state = State.WHITESPACE_AFTER_NAME; + input.backup(backup); + } else { + // no whitespace, just '=' or error + state = State.EQUALS; + } } else { - // no whitespace, just '=' - state = State.EQUALS; + readTillEndLine(input); + input.readText(0, input.readLength()); + state = State.START; + return info.tokenFactory().createToken(IniTokenId.ERROR); } } else {