Index: src/test/org/apache/lucene/index/TestAtomicUpdate.java =================================================================== --- src/test/org/apache/lucene/index/TestAtomicUpdate.java (revision 891656) +++ src/test/org/apache/lucene/index/TestAtomicUpdate.java (working copy) @@ -47,7 +47,7 @@ } private static abstract class TimedThread extends Thread { - boolean failed; + volatile boolean failed; int count; private static float RUN_TIME_SEC = 0.5f; private TimedThread[] allThreads; @@ -65,10 +65,11 @@ count = 0; try { - while(System.currentTimeMillis() < stopTime && !anyErrors()) { + do { + if (anyErrors()) break; doWork(); count++; - } + } while(System.currentTimeMillis() < stopTime); } catch (Throwable e) { System.out.println(Thread.currentThread().getName() + ": exc"); e.printStackTrace(System.out); Index: src/test/org/apache/lucene/index/TestIndexWriter.java =================================================================== --- src/test/org/apache/lucene/index/TestIndexWriter.java (revision 891656) +++ src/test/org/apache/lucene/index/TestIndexWriter.java (working copy) @@ -2204,7 +2204,7 @@ int fullCount = 0; final long stopTime = System.currentTimeMillis() + 200; - while(System.currentTimeMillis() < stopTime) { + do { try { writer.updateDocument(new Term("id", ""+(idUpto++)), doc); addCount++; @@ -2238,7 +2238,7 @@ } break; } - } + } while(System.currentTimeMillis() < stopTime); } } Index: src/test/org/apache/lucene/index/TestIndexWriterExceptions.java =================================================================== --- src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (revision 891656) +++ src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (working copy) @@ -65,7 +65,7 @@ final long stopTime = System.currentTimeMillis() + 500; - while(System.currentTimeMillis() < stopTime) { + do { doFail.set(this); final String id = ""+r.nextInt(50); idField.setValue(id); @@ -105,7 +105,7 @@ failure = t; break; } - } + } while(System.currentTimeMillis() < stopTime); } } Index: src/test/org/apache/lucene/index/TestIndexWriterReader.java =================================================================== --- src/test/org/apache/lucene/index/TestIndexWriterReader.java (revision 891656) +++ src/test/org/apache/lucene/index/TestIndexWriterReader.java (working copy) @@ -730,14 +730,14 @@ threads[i] = new Thread() { @Override public void run() { - while(System.currentTimeMillis() < endTime) { + do { try { writer.addIndexesNoOptimize(dirs); } catch (Throwable t) { excs.add(t); throw new RuntimeException(t); } - } + } while(System.currentTimeMillis() < endTime); } }; threads[i].setDaemon(true); @@ -760,6 +760,15 @@ for(int i=0;i= lastCount); assertEquals(0, excs.size()); writer.close(); @@ -796,7 +805,7 @@ public void run() { int count = 0; final Random r = new Random(); - while(System.currentTimeMillis() < endTime) { + do { try { for(int i=0;i<10;i++) { writer.addDocument(createDocument(10*count+i, "test", 4)); @@ -811,7 +820,7 @@ excs.add(t); throw new RuntimeException(t); } - } + } while(System.currentTimeMillis() < endTime); } }; threads[i].setDaemon(true); @@ -832,8 +841,17 @@ for(int i=0;i 0); + // at least search once + IndexReader r2 = r.reopen(); + if (r2 != r) { + r.close(); + r = r2; + } + Query q = new TermQuery(new Term("indexname", "test")); + sum += new IndexSearcher(r).search(q, 10).totalHits; + assertTrue("no documents found at all", sum > 0); + assertEquals(0, excs.size()); writer.close(); Index: src/test/org/apache/lucene/index/TestStressIndexing.java =================================================================== --- src/test/org/apache/lucene/index/TestStressIndexing.java (revision 891656) +++ src/test/org/apache/lucene/index/TestStressIndexing.java (working copy) @@ -31,7 +31,7 @@ private Random RANDOM; private static abstract class TimedThread extends Thread { - boolean failed; + volatile boolean failed; int count; private static int RUN_TIME_SEC = 1; private TimedThread[] allThreads; @@ -49,10 +49,11 @@ count = 0; try { - while(System.currentTimeMillis() < stopTime && !anyErrors()) { + do { + if (anyErrors()) break; doWork(); count++; - } + } while(System.currentTimeMillis() < stopTime); } catch (Throwable e) { System.out.println(Thread.currentThread() + ": exc"); e.printStackTrace(System.out); Index: src/test/org/apache/lucene/index/TestTransactions.java =================================================================== --- src/test/org/apache/lucene/index/TestTransactions.java (revision 891656) +++ src/test/org/apache/lucene/index/TestTransactions.java (working copy) @@ -38,7 +38,7 @@ } private static abstract class TimedThread extends Thread { - boolean failed; + volatile boolean failed; private static float RUN_TIME_SEC = 0.5f; private TimedThread[] allThreads; @@ -53,8 +53,10 @@ final long stopTime = System.currentTimeMillis() + (long) (1000*RUN_TIME_SEC); try { - while(System.currentTimeMillis() < stopTime && !anyErrors()) + do { + if (anyErrors()) break; doWork(); + } while (System.currentTimeMillis() < stopTime); } catch (Throwable e) { System.out.println(Thread.currentThread() + ": exc"); e.printStackTrace(System.out); Index: src/test/org/apache/lucene/TestSnapshotDeletionPolicy.java =================================================================== --- src/test/org/apache/lucene/TestSnapshotDeletionPolicy.java (revision 891656) +++ src/test/org/apache/lucene/TestSnapshotDeletionPolicy.java (working copy) @@ -122,7 +122,7 @@ public void run() { Document doc = new Document(); doc.add(new Field("content", "aaa", Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS)); - while(System.currentTimeMillis() < stopTime) { + do { for(int i=0;i<27;i++) { try { writer.addDocument(doc); @@ -143,7 +143,7 @@ } catch (InterruptedException ie) { throw new ThreadInterruptedException(ie); } - } + } while(System.currentTimeMillis() < stopTime); } }; @@ -151,12 +151,10 @@ // While the above indexing thread is running, take many // backups: - while(System.currentTimeMillis() < stopTime) { + do { backupIndex(dir, dp); Thread.sleep(20); - if (!t.isAlive()) - break; - } + } while(t.isAlive()); t.join();