You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by hui liu <iv...@gmail.com> on 2004/09/07 22:37:42 UTC

lucene locks index, tomcat has to stop and restart

Hi,

I met with such a problem with lucene demo:

Each time when I create lucene index, I have to first stop tomcat, and
restart tomcat after the index is created. The reason is: the index is
locked when using IndexReader.open(index) method in the jsp file.

So, I tried to modify the jsp codes by adding close(), but it shows
error which said "close() is not a static method". I checked the
source codes of lucene IndexReader methods, and found that the close()
method is final not static. I tried to change it to static, but
resulted in many errors.

So, does anybody meet the similar problem as me? Do you have any solutions?

Thank you very very much.....!!

Ivy.

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


Re: lucene locks index, tomcat has to stop and restart

Posted by Patrick Burleson <pb...@gmail.com>.
Ah, I see your problem. From the Lucene Javadocs on IndexSearcher.close():

"Note that the underlying IndexReader is not closed, if IndexSearcher
was constructed with IndexSearcher(IndexReader r). If the IndexReader
was supplied implicitly by specifying a directory, then the
IndexReader gets closed."

Since you are explicitly passing in an IndexReader, the IndexSearcher
is not closing it. But since you created the IndexReader without
retaining a reference to it, you can not close it, thus you will
always have an open index.

You have a couple of options:

Either retain a reference to IndexReader by doing the following:

IndexReader ir = IndexReader.open(indexName);
IndexSearcher searcher = new IndexSearcher(ir);

or if indexName is just the path to the index, then just use:

IndexSearcher searcher = new IndexSearcher(indexName);

since that will manage the IndexReader for you.

Hope that helps.

Patrick

CCing list for archives.


On Tue, 7 Sep 2004 18:38:43 -0400, hui liu <iv...@gmail.com> wrote:
> First of all, thanks for your reply:-)
> 
> But actually, I've already tried this and here is my code:
> 
> searcher = new IndexSearcher(IndexReader.open(indexName));
> 
> and at some later place I wrote:
> 
> IndexReader.close();
> 
> Both of them are within try and catch, and then I got such an error in
> IE by tomcat:
> 
> non-static method close() cannot be referenced from a static context.
> 
> I read the source code of IndexReader and found that the method
> close() is final not static. so I tried to change it to static, but
> got even more errors.
> 
> I am wondering how do you use lucene? Has anyone met with the same thing?
> 
> Thanks a lot.
> 
> Ivy.
> 
> 
> 
> 
> On Tue, 7 Sep 2004 17:03:00 -0400, Patrick Burleson <pb...@gmail.com> wrote:
> > This isn't a Tomcat specific problem, but sounds like a problem with
> > how you the reader is being used.
> >
> > Somewhere in the JSP a IndexReader variable was probably assigned to.
> > A line something like:
> >
> > IndexReader ir = IndexReader.open("somepath");
> >
> > To close the reader, and thus solve the problem, somewhere later, you need:
> >
> > ir.close();
> >
> > with the needed try/catch in place.
> >
> > Again, please refrain from cross-posting...just because it happened on
> > Tomcat doesn't make it a Tomcat problem. This is clearly a lucene
> > usage problem.
> >
> > Patrick
> >
> >
> >
> > On Tue, 7 Sep 2004 16:37:42 -0400, hui liu <iv...@gmail.com> wrote:
> > > Hi,
> > >
> > > I met with such a problem with lucene demo:
> > >
> > > Each time when I create lucene index, I have to first stop tomcat, and
> > > restart tomcat after the index is created. The reason is: the index is
> > > locked when using IndexReader.open(index) method in the jsp file.
> > >
> > > So, I tried to modify the jsp codes by adding close(), but it shows
> > > error which said "close() is not a static method". I checked the
> > > source codes of lucene IndexReader methods, and found that the close()
> > > method is final not static. I tried to change it to static, but
> > > resulted in many errors.
> > >
> > > So, does anybody meet the similar problem as me? Do you have any solutions?
> > >
> > > Thank you very very much.....!!
> > >
> > > Ivy.
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> > > For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> > >
> > >
> >
>

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


Re: lucene locks index, tomcat has to stop and restart

Posted by Patrick Burleson <pb...@gmail.com>.
This isn't a Tomcat specific problem, but sounds like a problem with
how you the reader is being used.

Somewhere in the JSP a IndexReader variable was probably assigned to.
A line something like:

IndexReader ir = IndexReader.open("somepath");

To close the reader, and thus solve the problem, somewhere later, you need:

ir.close();

with the needed try/catch in place. 

Again, please refrain from cross-posting...just because it happened on
Tomcat doesn't make it a Tomcat problem. This is clearly a lucene
usage problem.

Patrick

On Tue, 7 Sep 2004 16:37:42 -0400, hui liu <iv...@gmail.com> wrote:
> Hi,
> 
> I met with such a problem with lucene demo:
> 
> Each time when I create lucene index, I have to first stop tomcat, and
> restart tomcat after the index is created. The reason is: the index is
> locked when using IndexReader.open(index) method in the jsp file.
> 
> So, I tried to modify the jsp codes by adding close(), but it shows
> error which said "close() is not a static method". I checked the
> source codes of lucene IndexReader methods, and found that the close()
> method is final not static. I tried to change it to static, but
> resulted in many errors.
> 
> So, does anybody meet the similar problem as me? Do you have any solutions?
> 
> Thank you very very much.....!!
> 
> Ivy.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> 
>

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