You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Robert Muir (JIRA)" <ji...@apache.org> on 2014/03/17 19:57:47 UTC

[jira] [Resolved] (LUCENE-5450) NPE and Illegal Argument Exception in wrapped SpanMultiTerms with no matches

     [ https://issues.apache.org/jira/browse/LUCENE-5450?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Muir resolved LUCENE-5450.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 4.7.1

> NPE and Illegal Argument Exception in wrapped SpanMultiTerms with no matches
> ----------------------------------------------------------------------------
>
>                 Key: LUCENE-5450
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5450
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/search
>    Affects Versions: 5.0
>            Reporter: Tim Allison
>             Fix For: 4.8, 5.0, 4.7.1
>
>         Attachments: LUCENE-5450.patch, LUCENE-5450.patch
>
>
> There are problems with the handling of wrapped span multiterms that don't have any matches.  
> 1) In the test framework, when AssertingIndexSearcher does a rewrite and then checks for equality, there's an NPE for SpanNear and SpanOr:
> {noformat}
> java.lang.NullPointerException
> 	at __randomizedtesting.SeedInfo.seed([8E96A398C89A703B:338EB53A2EDBE8CC]:0)
> 	at org.apache.lucene.search.spans.SpanOrQuery.addClause(SpanOrQuery.java:57)
> 	at org.apache.lucene.search.spans.SpanOrQuery.<init>(SpanOrQuery.java:49)
> 	at org.apache.lucene.search.spans.SpanOrQuery.clone(SpanOrQuery.java:86)
> 	at org.apache.lucene.search.spans.SpanOrQuery.clone(SpanOrQuery.java:39)
> 	at org.apache.lucene.search.QueryUtils.checkHashEquals(QueryUtils.java:57)
> 	at org.apache.lucene.search.QueryUtils.check(QueryUtils.java:52)
> 	at org.apache.lucene.search.AssertingIndexSearcher.rewrite(AssertingIndexSearcher.java:80)
> 	at org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:675)
> 	at org.apache.lucene.search.AssertingIndexSearcher.createNormalizedWeight(AssertingIndexSearcher.java:59)
> 	at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:273)
> 	at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:261)
> 	at org.apache.lucene.search.spans.TestSpanMultiTermQueryWrapper.testNoSuchMultiTermsInOr(TestSpanMultiTermQueryWrapper.java:177)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1559)
> ...
> {noformat}
> 2) The same issue is causing a "Clauses must have same field" illegal argument exception in a SpanNotQuery.
> {noformat}
> java.lang.IllegalArgumentException: Clauses must have same field.
> 	at __randomizedtesting.SeedInfo.seed([779E5DD7E7523C72:4C2ECAAB938038F9]:0)
> 	at org.apache.lucene.search.spans.SpanNotQuery.<init>(SpanNotQuery.java:66)
> 	at org.apache.lucene.search.spans.SpanNotQuery.clone(SpanNotQuery.java:99)
> 	at org.apache.lucene.search.spans.SpanNotQuery.clone(SpanNotQuery.java:36)
> 	at org.apache.lucene.search.QueryUtils.checkHashEquals(QueryUtils.java:57)
> 	at org.apache.lucene.search.QueryUtils.check(QueryUtils.java:52)
> 	at org.apache.lucene.search.AssertingIndexSearcher.rewrite(AssertingIndexSearcher.java:80)
> 	at org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:675)
> 	at org.apache.lucene.search.AssertingIndexSearcher.createNormalizedWeight(AssertingIndexSearcher.java:59)
> 	at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:273)
> 	at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:261)
> 	at org.apache.lucene.search.spans.TestSpanMultiTermQueryWrapper.testNoSuchMultiTermsInNotNear(TestSpanMultiTermQueryWrapper.java:144)
> ...
> {noformat}
> The basic problem is that an empty SpanQuery (SpanOrQuery with zero clauses) does not have a field, and much of our code assumes that the field is not null.
> Test case and patch on way.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org