I can not help you to figure out your exact problem but you can use an
the same indexwriter instance without synchronization. IndexWriter is
threadsafe so you synchronized block seems obsolet.
I could imagine that there is a backgroud merge going on while you try
to access the critical section ( you synchronized block) which could
block you code for a while until the merge has finished. Can you
figure out if a merger-thread is running? The threads name should be
set to something like "Lucene Merge Thread #n"

simon

On Tue, Jul 28, 2009 at 6:27 AM, Chengdu
Huang<chengdu.hu...@patterninsight.com> wrote:
> Hi,
>
> I have an application in which documents are added upon receiving a
> user request and a background thread is needed to remove old
> documents.  I have an IndexWriter opened on a Directory that adds
> documents and commits but never closes.  The background thread that
> removes documents uses the same instance of IndexWriter.  So the code
> looks like
>
> // Thread to add document:
> synchronized(writer) {
>  try {
>    Document doc = new Document();
>    doc.add();
>    ...
>    writer.commit();
>  } catch (Exception e) {
>    writer.rollback();
>  }
> }
>
> Now looks like I run into some kind of deadlock here even *WITHOUT*
> the background thread of removing documents.  The symptom is that the
> whole java process is on sleeping state and jstack shows that the
> thread to add document is blocked on waiting an object.  Unfortunately
> I'm unable to reproduce this in unittests.
>
> My guess is that the outer synchronized(writer) {} block is causing
> the problem, but can't figure out why.  Any idea?
>
> Chengdu
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-user-h...@lucene.apache.org
>
>

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

Reply via email to