OK I carried my two fixes (LUCENE-1117, LUCENE-1125) to 2.3 branch!
Mike
On Jan 10, 2008, at 12:48 PM, Michael Busch wrote:
Mike,
do you want to merge this into the 2.3 branch before I build RC2?
-Michael
[EMAIL PROTECTED] wrote:
Author: mikemccand
Date: Thu Jan 10 02:12:18 2008
New Revision: 610738
URL: http://svn.apache.org/viewvc?rev=610738&view=rev
Log:
LUCENE-1117: fix EnwikiDocMaker to not hang when the producer
thread hits exception
Modified:
lucene/java/trunk/contrib/benchmark/src/java/org/apache/lucene/
benchmark/byTask/feeds/EnwikiDocMaker.java
Modified: lucene/java/trunk/contrib/benchmark/src/java/org/apache/
lucene/benchmark/byTask/feeds/EnwikiDocMaker.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/
benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/
EnwikiDocMaker.java?rev=610738&r1=610737&r2=610738&view=diff
=====================================================================
=========
--- lucene/java/trunk/contrib/benchmark/src/java/org/apache/lucene/
benchmark/byTask/feeds/EnwikiDocMaker.java (original)
+++ lucene/java/trunk/contrib/benchmark/src/java/org/apache/lucene/
benchmark/byTask/feeds/EnwikiDocMaker.java Thu Jan 10 02:12:18 2008
@@ -47,6 +47,7 @@
class Parser extends DefaultHandler implements Runnable {
Thread t;
+ boolean threadDone;
public void run() {
@@ -86,8 +87,12 @@
throw new RuntimeException(sae);
} catch (IOException ioe) {
throw new RuntimeException(ioe);
+ } finally {
+ synchronized(this) {
+ threadDone = true;
+ notify();
+ }
}
-
}
String[] tuple;
@@ -95,13 +100,14 @@
String[] next() throws NoMoreDataException {
if (t == null) {
+ threadDone = false;
t = new Thread(this);
t.setDaemon(true);
t.start();
}
String[] result;
synchronized(this){
- while(tuple == null && nmde == null){
+ while(tuple == null && nmde == null && !threadDone) {
try {
wait();
} catch (InterruptedException ie) {
@@ -113,6 +119,12 @@
t = null;
throw nmde;
}
+ if (t != null && threadDone)
+ // The thread has exited yet did not hit end of
+ // data, so this means it hit an exception. We
+ // throw NoMorDataException here to force
+ // benchmark to stop the current alg:
+ throw new NoMoreDataException();
result = tuple;
tuple = null;
notify();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]