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