Hello When using "new QueryParser(...).parse(...)" I'd like to get the position where the error was detected (to show it to the user). See (and run) the code below.
This is not possible via "e.currentToken" (that's null). Nevertheless this position will be printed within the getMessage() method but is not accessible directly. The reason is that ParseException has two different modes of instantiation distinguished by "specialConstructor". As it gets copied within the lucene code (specialConstructor==false) the currentToken variable is lost. I guess it would be nice to add the position of the error. Any other way I have overlooked? I could parse the output of getMessage(), but that is not fine. ================================================================== import org.apache.lucene.analysis.WhitespaceAnalyzer; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.queryParser.QueryParser; public class TestParseException { public static void main(String[] args) { QueryParser parser = new QueryParser("any", new WhitespaceAnalyzer()); try { parser.parse("b("); // yields ParseException } catch (ParseException e) { System.out.println("e.currentToken=" + e.currentToken); if (e.currentToken != null) { System.out.println("e.currentToken.beginColumn=" + e.currentToken.beginColumn); } System.out.println("message=" + e.getMessage()); } } } ================================================================== Stefan --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]