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 <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>
__________________________________________________
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:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>