lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rasik Pandey" <rasik.pan...@ajlsm.com>
Subject RE : Nullpointer in code
Date Thu, 12 Sep 2002 17:05:54 GMT
Otis,
Here a the test program that will generate the null pointer and the
requested diff. Hope they are helpful.

Thanks,
Rasik Pandey



-----Message d'origine-----
De : Otis Gospodnetic [mailto:otis_gospodnetic@yahoo.com] 
Envoyé : jeudi 12 septembre 2002 18:23
À : Lucene Developers List
Cc : rasik.pandey@ajlsm.com
Objet : Re: Nullpointer in code


Rasik,

Thanks for feedback, but that stuff is a bit hard to read.
The best way to help would be to write a class that demonstrates this,
then fix your code to work, then make a diff between your fixed code and
the code in the CVS, and finally, it would be great to have a unit test
for it, but I can write that later.

Thanks,
Otis


--- Rasik Pandey <rasik.pandey@ajlsm.com> wrote:
> Developers,
> I am encountering a null pointer exception when executing a wild card 
> query search on an empty index which doesn't contain any terms  and of
> course not the Term generated from the wild card query (ie the
> WildCardTermEnum has an empty "actualEnum"). Please see below for
> what i
> propose to be the fix (simple). I assume that this is sufficient or
> would a change in one of the SegmentReader or TermsInfosReader
> classes
> be more appropriate (not likely)?
> 
> I do not have access to commit this change, so if you deem that it is 
> necessary can you please make the modification.
> 
> Cheers,
> Rasik Pandey
> 
> Basically in the constructor of WildCardTermEnum the constructor 
> calls;
> 
>       setEnum(reader.terms(new Term(searchTerm.field(), pre)));
> 		----or
> 		super.setEnum(an empty termEnum); or
FilteredTermEnum.setEnum(an 
> empty termEnum);
> 
> 
> Then in FilteredTermnEnum:
> protected void setEnum(TermEnum actualEnum) throws IOException {
>         this.actualEnum = actualEnum;
>         // Find the first term that matches
>         
> 
> 	!!!!!!!!the result of actualEnum.term(); is null in my
case!!!!!!!!!
> 	Term term = actualEnum.term();
>  
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>   
> 
> 		!!!!!!!!!!!!the below line leads to the null
pointer!!!!!!!!!!
> 		if (termCompare(term)) 
> 		!!!!!!!!!!!!!!!!!!!!see
> below!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> 
>             currentTerm = term;
>         else next();
>     }
> 
> 
> Then back in WildCardTermEnum:
> 
> final protected boolean termCompare(Term term) {
>       !!!!!!!!!!!the below line should test to ensure that "term" is 
> not null!!!!!!
> 	if (field == term.field()) {
> 	!!!!!!!!!!!!!!!!see below line for the simple
> fix!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>       
> 	!!!!!!!!!!!!!!!!!below is the changed line for the simple 
> fix!!!!!!!!!!!!!!!!!!!!!!!!
> 	if (term != null && field == term.field()) {
> 	
>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> !!!!!!!!!!!!!
>           String searchText = term.text();
>           if (searchText.startsWith(pre)) {
>             return wildcardEquals(text, 0, searchText, preLen);
>           }
>       }
>       endEnum = true;
>       return false;
>   }
> 
> 
> --
> To unsubscribe, e-mail:
> <mailto:lucene-dev-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
> <mailto:lucene-dev-help@jakarta.apache.org>
> 


__________________________________________________
Yahoo! - We Remember
9-11: A tribute to the more than 3,000 lives lost
http://dir.remember.yahoo.com/tribute

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

Mime
View raw message