You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Eric Fixler <fi...@idiom.com> on 2002/02/26 00:22:02 UTC
NullPointerException on writer.close()
Hello. I'm pretty new to Lucene. I've had good luck so far, but o bug
just cropped up in the code I use to make indexes. I'm using rc4 and
(sorry) did not change the code; I just noticed my indexes failing...
anyway, here's the relevant segment...I know that the file path is
valid, and files _are_ getting created updated there -- I checked the
timestamps.
Also, I'm confused about the create boolean in the IndexWriter
constructor -- should it be true for false when updating existing
entries in an
existing index.
public void makeIndex() throws IOException, NestedException {
this.logDebug("Creating index in " + this.getIndexFileName());
IndexWriter writer = new
IndexWriter(this.getIndexFileName(),new StandardAnalyzer(), false); //I
was using 'true' changed to false
//for debugging, to no effect
// <cut>full text below, for those interested</cut>
try {
for (int i=0; i < projects.length; i++) {
this.logDebug("Adding project " +
projects[i].getId() + " [" + projects[i].getDisplayName() + "] to
index");
Document d = this.makeProjectDocument(projects[i]);
writer.addDocument(d);
this.logDebug("Done adding project " +
projects[i].getId() + " to index.");
}
this.logDebug("Done processing vsp information for lucene
search index, about to finalize index.");
} catch (RuntimeException re) {
this.logError("Unexpected error writing index!", re);
throw(re);
} finally {
writer.optimize();
this.logDebug("index optimized...closing");
writer.close(); //*** THIS IS WHERE THE EXCEPTION GETS THROWN
this.logDebug("Index closed; done writing lucene index.");
}
}
I looked at the the IndexWriter.close() method, and it seems like
ramDirectory, directory or writeLock need to be null o make this happen.
Anyway, any advice would be greatly appreciated.
best
eric
-- full method listing
public void makeIndex() throws IOException, NestedException {
this.logDebug("Creating index in " + this.getIndexFileName());
IndexWriter writer = new
IndexWriter(this.getIndexFileName(),new StandardAnalyzer(), false);
//get projects/activities, make docs for each...
Project[] projects = null;
try {
projects = this.getProjectService().getProjectsById(null);
} catch (Exception e) {
String msg = "Can't get projects for indexing, aborting";
this.logError(msg,e);
throw new NestedException(msg,e);
} finally {
writer.close();
}
try {
for (int i=0; i < projects.length; i++) {
//Project project = projects[i];
this.logDebug("Adding project " +
projects[i].getId() + " [" + projects[i].getDisplayName() + "] to
index");
Document d = this.makeProjectDocument(projects[i]);
writer.addDocument(d);
this.logDebug("Done adding project " +
projects[i].getId() + " to index.");
}
this.logDebug("Done processing vsp information for lucene
search index, about to finalize index.");
} catch (RuntimeException re) {
this.logError("Unexpected error writing index!", re);
throw(re);
} finally {
writer.optimize();
this.logDebug("index optimized...closing");
writer.close();
this.logDebug("Index closed; done writing lucene index.");
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
Re: NullPointerException on writer.close()
Posted by Eric Fixler <fi...@smete.org>.
I was hoping this mail didn't go the list -- the bug was totally mine
and it was really stupid! I had high hopes that since I sent it from
the wrong e-mail account, it would get spam filtered and I wouldn't be
exposed; oh well.
There was an extra index.close() in a finally block that should've been
in a catch block. I've been a bit overworked and was staring at this
for about 2 hours without seeing it -- I doscovered i about 2 seconds
after sending the mail.
Anyway, thanks and sorry...
eric
On Tuesday, February 26, 2002, at 11:47 AM, Otis Gospodnetic wrote:
> Eric,
>
> Please send the exception stack trace with line numbers, it would help
> a great deal.
>
> Otis
>
>
> --- Eric Fixler <fi...@idiom.com> wrote:
>> Hello. I'm pretty new to Lucene. I've had good luck so far, but o
>> bug
>> just cropped up in the code I use to make indexes. I'm using rc4 and
>>
>> (sorry) did not change the code; I just noticed my indexes failing...
>>
>> anyway, here's the relevant segment...I know that the file path is
>> valid, and files _are_ getting created updated there -- I checked the
>>
>> timestamps.
>>
>> Also, I'm confused about the create boolean in the IndexWriter
>> constructor -- should it be true for false when updating existing
>> entries in an
>> existing index.
>>
>> public void makeIndex() throws IOException, NestedException {
>> this.logDebug("Creating index in " + this.getIndexFileName());
>> IndexWriter writer = new
>> IndexWriter(this.getIndexFileName(),new StandardAnalyzer(), false);
>> //I
>> was using 'true' changed to false
>> //for debugging, to no effect
>> // <cut>full text below, for those interested</cut>
>>
>> try {
>> for (int i=0; i < projects.length; i++) {
>> this.logDebug("Adding project " +
>> projects[i].getId() + " [" + projects[i].getDisplayName() + "] to
>> index");
>> Document d = this.makeProjectDocument(projects[i]);
>> writer.addDocument(d);
>> this.logDebug("Done adding project " +
>> projects[i].getId() + " to index.");
>>
>> }
>> this.logDebug("Done processing vsp information for lucene
>> search index, about to finalize index.");
>> } catch (RuntimeException re) {
>> this.logError("Unexpected error writing index!", re);
>> throw(re);
>> } finally {
>> writer.optimize();
>> this.logDebug("index optimized...closing");
>> writer.close(); //*** THIS IS WHERE THE EXCEPTION GETS THROWN
>> this.logDebug("Index closed; done writing lucene index.");
>> }
>> }
>>
>>
>> I looked at the the IndexWriter.close() method, and it seems like
>> ramDirectory, directory or writeLock need to be null o make this
>> happen.
>>
>> Anyway, any advice would be greatly appreciated.
>>
>> best
>> eric
>>
>>
>> -- full method listing
>> public void makeIndex() throws IOException, NestedException {
>> this.logDebug("Creating index in " + this.getIndexFileName());
>> IndexWriter writer = new
>> IndexWriter(this.getIndexFileName(),new StandardAnalyzer(), false);
>> //get projects/activities, make docs for each...
>> Project[] projects = null;
>> try {
>> projects = this.getProjectService().getProjectsById(null);
>> } catch (Exception e) {
>> String msg = "Can't get projects for indexing, aborting";
>> this.logError(msg,e);
>> throw new NestedException(msg,e);
>> } finally {
>> writer.close();
>> }
>>
>> try {
>> for (int i=0; i < projects.length; i++) {
>> //Project project = projects[i];
>> this.logDebug("Adding project " +
>> projects[i].getId() + " [" + projects[i].getDisplayName() + "] to
>> index");
>> Document d = this.makeProjectDocument(projects[i]);
>> writer.addDocument(d);
>> this.logDebug("Done adding project " +
>> projects[i].getId() + " to index.");
>>
>> }
>> this.logDebug("Done processing vsp information for lucene
>> search index, about to finalize index.");
>> } catch (RuntimeException re) {
>> this.logError("Unexpected error writing index!", re);
>> throw(re);
>> } finally {
>> writer.optimize();
>> this.logDebug("index optimized...closing");
>> writer.close();
>> this.logDebug("Index closed; done writing lucene index.");
>> }
>> }
>>
>>
>> --
>> To unsubscribe, e-mail:
>> <ma...@jakarta.apache.org>
>> For additional commands, e-mail:
>> <ma...@jakarta.apache.org>
>>
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Greetings - Send FREE e-cards for every occasion!
> http://greetings.yahoo.com
>
> --
> To unsubscribe, e-mail: <mailto:lucene-user-
> unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:lucene-user-
> help@jakarta.apache.org>
>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
Re: NullPointerException on writer.close()
Posted by Otis Gospodnetic <ot...@yahoo.com>.
Eric,
Please send the exception stack trace with line numbers, it would help
a great deal.
Otis
--- Eric Fixler <fi...@idiom.com> wrote:
> Hello. I'm pretty new to Lucene. I've had good luck so far, but o
> bug
> just cropped up in the code I use to make indexes. I'm using rc4 and
>
> (sorry) did not change the code; I just noticed my indexes failing...
>
> anyway, here's the relevant segment...I know that the file path is
> valid, and files _are_ getting created updated there -- I checked the
>
> timestamps.
>
> Also, I'm confused about the create boolean in the IndexWriter
> constructor -- should it be true for false when updating existing
> entries in an
> existing index.
>
> public void makeIndex() throws IOException, NestedException {
> this.logDebug("Creating index in " + this.getIndexFileName());
> IndexWriter writer = new
> IndexWriter(this.getIndexFileName(),new StandardAnalyzer(), false);
> //I
> was using 'true' changed to false
> //for debugging, to no effect
> // <cut>full text below, for those interested</cut>
>
> try {
> for (int i=0; i < projects.length; i++) {
> this.logDebug("Adding project " +
> projects[i].getId() + " [" + projects[i].getDisplayName() + "] to
> index");
> Document d = this.makeProjectDocument(projects[i]);
> writer.addDocument(d);
> this.logDebug("Done adding project " +
> projects[i].getId() + " to index.");
>
> }
> this.logDebug("Done processing vsp information for lucene
> search index, about to finalize index.");
> } catch (RuntimeException re) {
> this.logError("Unexpected error writing index!", re);
> throw(re);
> } finally {
> writer.optimize();
> this.logDebug("index optimized...closing");
> writer.close(); //*** THIS IS WHERE THE EXCEPTION GETS THROWN
> this.logDebug("Index closed; done writing lucene index.");
> }
> }
>
>
> I looked at the the IndexWriter.close() method, and it seems like
> ramDirectory, directory or writeLock need to be null o make this
> happen.
>
> Anyway, any advice would be greatly appreciated.
>
> best
> eric
>
>
> -- full method listing
> public void makeIndex() throws IOException, NestedException {
> this.logDebug("Creating index in " + this.getIndexFileName());
> IndexWriter writer = new
> IndexWriter(this.getIndexFileName(),new StandardAnalyzer(), false);
> //get projects/activities, make docs for each...
> Project[] projects = null;
> try {
> projects = this.getProjectService().getProjectsById(null);
> } catch (Exception e) {
> String msg = "Can't get projects for indexing, aborting";
> this.logError(msg,e);
> throw new NestedException(msg,e);
> } finally {
> writer.close();
> }
>
> try {
> for (int i=0; i < projects.length; i++) {
> //Project project = projects[i];
> this.logDebug("Adding project " +
> projects[i].getId() + " [" + projects[i].getDisplayName() + "] to
> index");
> Document d = this.makeProjectDocument(projects[i]);
> writer.addDocument(d);
> this.logDebug("Done adding project " +
> projects[i].getId() + " to index.");
>
> }
> this.logDebug("Done processing vsp information for lucene
> search index, about to finalize index.");
> } catch (RuntimeException re) {
> this.logError("Unexpected error writing index!", re);
> throw(re);
> } finally {
> writer.optimize();
> this.logDebug("index optimized...closing");
> writer.close();
> this.logDebug("Index closed; done writing lucene index.");
> }
> }
>
>
> --
> To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
>
__________________________________________________
Do You Yahoo!?
Yahoo! Greetings - Send FREE e-cards for every occasion!
http://greetings.yahoo.com
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>