[ https://issues.apache.org/jira/browse/LUCENE-6347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14358440#comment-14358440 ]
Paul taylor commented on LUCENE-6347: ------------------------------------- Hm, Ive just retested it and with assertions enabled for me it does give the following assertion stack trace: java.lang.AssertionError at org.apache.lucene.search.MultiTermQuery.<init>(MultiTermQuery.java:252) at org.apache.lucene.search.AutomatonQuery.<init>(AutomatonQuery.java:65) at org.apache.lucene.search.RegexpQuery.<init>(RegexpQuery.java:90) at org.apache.lucene.search.RegexpQuery.<init>(RegexpQuery.java:79) at org.apache.lucene.search.RegexpQuery.<init>(RegexpQuery.java:69) at org.apache.lucene.queryparser.classic.QueryParserBase.newRegexpQuery(QueryParserBase.java:790) at org.apache.lucene.queryparser.classic.QueryParserBase.getRegexpQuery(QueryParserBase.java:1005) at org.apache.lucene.queryparser.classic.QueryParserBase.handleBareTokenQuery(QueryParserBase.java:1075) at org.apache.lucene.queryparser.classic.QueryParser.Term(QueryParser.java:359) at org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:258) at org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:213) at org.apache.lucene.queryparser.classic.QueryParser.TopLevelQuery(QueryParser.java:171) at org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:120) at org.musicbrainz.search.servlet.LuceneRegExParseTest.testSearch411LuceneBugReport(LuceneRegExParseTest.java:31) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at org.junit.runner.JUnitCore.run(JUnitCore.java:157) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) > MultiFieldQueryParser doesnt catch invalid syntax properly (due to user using > regexpression syntax unwittingly) > --------------------------------------------------------------------------------------------------------------- > > Key: LUCENE-6347 > URL: https://issues.apache.org/jira/browse/LUCENE-6347 > Project: Lucene - Core > Issue Type: Bug > Components: core/queryparser > Affects Versions: 4.1 > Reporter: Paul taylor > > MultiFieldQueryParser doesnt catch invalid syntax properly (due to user using > regexpression syntax unwittingly) > {code} > import org.apache.lucene.analysis.standard.StandardAnalyzer; > import org.apache.lucene.queryparser.classic.MultiFieldQueryParser; > import org.apache.lucene.queryparser.classic.ParseException; > import org.apache.lucene.queryparser.classic.QueryParser; > import org.apache.lucene.util.Version; > import org.junit.Test; > import static org.junit.Assert.assertNotNull; > import static org.junit.Assert.assertTrue; > /** > * Lucene tests > */ > public class LuceneRegExParseTest > { > @Test > public void testSearch411LuceneBugReport() throws Exception > { > Exception e = null; > try > { > String[] fields = new String[2]; > fields[0] = "artist"; > fields[1] = "recording"; > QueryParser qp = new MultiFieldQueryParser(Version.LUCENE_41, > fields, new StandardAnalyzer(Version.LUCENE_41)); > qp.parse("artist:pandora /reyli recording:yo/Alguien"); > } > catch(Exception ex) > { > e=ex; > } > assertNotNull(e); > assertTrue(e instanceof ParseException ); > } > } > {code} > With assertions disabled this test fails as no exception is thrown. > With assertions enabled we get > {code} > java.lang.AssertionError > at > org.apache.lucene.search.MultiTermQuery.<init>(MultiTermQuery.java:252) > at > org.apache.lucene.search.AutomatonQuery.<init>(AutomatonQuery.java:65) > at org.apache.lucene.search.RegexpQuery.<init>(RegexpQuery.java:90) > at org.apache.lucene.search.RegexpQuery.<init>(RegexpQuery.java:79) > at org.apache.lucene.search.RegexpQuery.<init>(RegexpQuery.java:69) > at > org.apache.lucene.queryparser.classic.QueryParserBase.newRegexpQuery(QueryParserBase.java:790) > at > org.apache.lucene.queryparser.classic.QueryParserBase.getRegexpQuery(QueryParserBase.java:1005) > at > org.apache.lucene.queryparser.classic.QueryParserBase.handleBareTokenQuery(QueryParserBase.java:1075) > at > org.apache.lucene.queryparser.classic.QueryParser.Term(QueryParser.java:359) > at > org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:258) > at > org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:213) > at > org.apache.lucene.queryparser.classic.QueryParser.TopLevelQuery(QueryParser.java:171) > at > org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:120) > at > org.musicbrainz.search.servlet.LuceneRegExParseTest.testSearch411LuceneBugReport(LuceneRegExParseTest.java:30) > but this should throw an exception without assertions enabled. Because no > exception is thrown a search then faikls with the following stack trace > java.lang.NullPointerException > at java.util.TreeMap.getEntry(TreeMap.java:342) > at java.util.TreeMap.get(TreeMap.java:273) > at > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader.terms(PerFieldPostingsFormat.java:215) > at > org.apache.lucene.search.TermCollectingRewrite.collectTerms(TermCollectingRewrite.java:58) > at > org.apache.lucene.search.ConstantScoreAutoRewrite.rewrite(ConstantScoreAutoRewrite.java:95) > at > org.apache.lucene.search.MultiTermQuery$ConstantScoreAutoRewrite.rewrite(MultiTermQuery.java:220) > at org.apache.lucene.search.MultiTermQuery.rewrite(MultiTermQuery.java:286) > at org.apache.lucene.search.BooleanQuery.rewrite(BooleanQuery.java:429) > at org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:616) > at > org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:663) > at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:281) > at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:269) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org