lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <...@thetaphi.de>
Subject RE: Filter.getDocIdSet() returning null, and what this means for CachingWrapperFilter
Date Wed, 26 May 2010 13:30:31 GMT
I opened https://issues.apache.org/jira/browse/LUCENE-2478 and will fix soon!

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de

> -----Original Message-----
> From: Uwe Schindler [mailto:uwe@thetaphi.de]
> Sent: Wednesday, May 26, 2010 9:41 AM
> To: java-user@lucene.apache.org
> Subject: RE: Filter.getDocIdSet() returning null, and what this means for
> CachingWrapperFilter
> 
> Can you open an issue, null should be handled like an empty DocIdSet? This
> seems to be a bug in CachingWrapperFilter.
> 
> To go around this, don’t return null, and instead return the constant
> DocIdSet.EMPTY_DOCIDSET. This is the preferable solution and maybe we
> will change this in Lucene 4.0, to not allow null as return value.
> 
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: uwe@thetaphi.de
> 
> > -----Original Message-----
> > From: Daniel Noll [mailto:daniel@nuix.com]
> > Sent: Wednesday, May 26, 2010 8:57 AM
> > To: Lucene Java Users Mailing List
> > Subject: Filter.getDocIdSet() returning null, and what this means for
> > CachingWrapperFilter
> >
> > Hi all.
> >
> > We are seeing an exception like this:
> >
> > java.lang.NullPointerException
> >     at
> >
> org.apache.lucene.search.CachingWrapperFilter.docIdSetToCache(CachingW
> > rapperFilter.java:84)
> >     at
> >
> org.apache.lucene.search.CachingWrapperFilter.getDocIdSet(CachingWrapp
> > erFilter.java:112)
> >     at
> >
> com.nuix.storage.search.LazyConstantScoreQuery$LazyFilterWrapper.getDo
> > cIdSet(SourceFile:91)
> >     at
> >
> org.apache.lucene.search.ConstantScoreQuery$ConstantScorer.<init>(Cons
> > t
> > antScoreQuery.java:116)
> >     at
> >
> org.apache.lucene.search.ConstantScoreQuery$ConstantWeight.scorer(Con
> > stantScoreQuery.java:81)
> >     at
> >
> org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQu
> > ery.java:297)
> >     at
> >
> org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQu
> > ery.java:297)
> >     at
> > org.apache.lucene.search.QueryWrapperFilter$2.iterator(QueryWrapperFil
> > t
> > er.java:75)
> >
> > The class of our own is just an intermediary which delays creating the
> > Filter object...
> >
> >         @Override
> >         public DocIdSet getDocIdSet(IndexReader reader) throws IOException
> {
> >             if (delegate == null) {
> >                 delegate = factory.createFilter();
> >             }
> >             return delegate.getDocIdSet(reader);
> >         }
> >
> > Tracing through the code in CachingWrapperFilter, I can see that this
> > NPE would occur if getDocIdSet() were to return null.
> >
> > The Javadoc on Filter says that null will be returned if no documents
> > will be accepted by the filter, but it doesn't seem that Lucene itself
> > is handling null return values correctly, so which is correct?  The code or the
> Javadoc?
> > Supposing that null really is OK, does this cause any problems with
> > how CachingWrapperFilter is implementing the caching?  I notice it's
> > calling get() and then comparing against null so it wouldn't appear
> > that it can distinguish "the entry isn't in the cache" from "the entry is in the
> cache but it's null".
> >
> > Daniel
> >
> >
> >
> > --
> > Daniel Noll                            Forensic and eDiscovery Software
> > Senior Developer                              The world's most advanced
> > Nuix                                                email data analysis
> > http://nuix.com/                                and eDiscovery software
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > For additional commands, e-mail: java-user-help@lucene.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org



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


Mime
View raw message