You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2015/05/13 22:45:16 UTC

svn commit: r1679273 - /lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java

Author: mikemccand
Date: Wed May 13 20:45:16 2015
New Revision: 1679273

URL: http://svn.apache.org/r1679273
Log:
add test case

Modified:
    lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java

Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1679273&r1=1679272&r2=1679273&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java Wed May 13 20:45:16 2015
@@ -2691,5 +2691,35 @@ public class TestIndexWriter extends Luc
     r.close();
     d.close();
   }
+
+  public void testManySeparateThreads() throws Exception {
+    Directory dir = newDirectory();
+    IndexWriterConfig iwc = new IndexWriterConfig(new MockAnalyzer(random()));
+    iwc.setMaxBufferedDocs(1000);
+    final IndexWriter w = new IndexWriter(dir, iwc);
+    // Index 100 docs, each from a new thread, but always only 1 thread is in IW at once:
+    for(int i=0;i<100;i++) {
+      Thread thread = new Thread() {
+        @Override
+        public void run() {
+          Document doc = new Document();
+          doc.add(newStringField("foo", "bar", Field.Store.NO));
+          try {
+            w.addDocument(doc);
+          } catch (IOException ioe) {
+            throw new RuntimeException(ioe);
+          }
+        }
+        };
+      thread.start();
+      thread.join();
+    }
+    w.close();
+
+    IndexReader r = DirectoryReader.open(dir);
+    assertEquals(1, r.leaves().size());
+    r.close();
+    dir.close();
+  }
 }