X-Git-Url: https://git.mdrn.pl/pylucene.git/blobdiff_plain/a2e61f0c04805cfcb8706176758d1283c7e3a55c..aaeed5504b982cf3545252ab528713250aa33eed:/lucene-java-3.4.0/lucene/src/test/org/apache/lucene/index/TestNRTReaderWithThreads.java diff --git a/lucene-java-3.4.0/lucene/src/test/org/apache/lucene/index/TestNRTReaderWithThreads.java b/lucene-java-3.4.0/lucene/src/test/org/apache/lucene/index/TestNRTReaderWithThreads.java deleted file mode 100644 index 0798b1a..0000000 --- a/lucene-java-3.4.0/lucene/src/test/org/apache/lucene/index/TestNRTReaderWithThreads.java +++ /dev/null @@ -1,116 +0,0 @@ -package org.apache.lucene.index; - -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.util.Random; -import java.util.concurrent.atomic.AtomicInteger; - -import org.apache.lucene.analysis.MockAnalyzer; -import org.apache.lucene.document.Document; -import org.apache.lucene.store.Directory; -import org.apache.lucene.util.LuceneTestCase; - -public class TestNRTReaderWithThreads extends LuceneTestCase { - AtomicInteger seq = new AtomicInteger(1); - - public void testIndexing() throws Exception { - Directory mainDir = newDirectory(); - IndexWriter writer = new IndexWriter( - mainDir, - newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)). - setMaxBufferedDocs(10). - setMergePolicy(newLogMergePolicy(false,2)) - ); - writer.setInfoStream(VERBOSE ? System.out : null); - IndexReader reader = writer.getReader(); // start pooling readers - reader.close(); - RunThread[] indexThreads = new RunThread[4]; - for (int x=0; x < indexThreads.length; x++) { - indexThreads[x] = new RunThread(x % 2, writer); - indexThreads[x].setName("Thread " + x); - indexThreads[x].start(); - } - long startTime = System.currentTimeMillis(); - long duration = 1000; - while ((System.currentTimeMillis() - startTime) < duration) { - Thread.sleep(100); - } - int delCount = 0; - int addCount = 0; - for (int x=0; x < indexThreads.length; x++) { - indexThreads[x].run = false; - assertNull("Exception thrown: "+indexThreads[x].ex, indexThreads[x].ex); - addCount += indexThreads[x].addCount; - delCount += indexThreads[x].delCount; - } - for (int x=0; x < indexThreads.length; x++) { - indexThreads[x].join(); - } - for (int x=0; x < indexThreads.length; x++) { - assertNull("Exception thrown: "+indexThreads[x].ex, indexThreads[x].ex); - } - //System.out.println("addCount:"+addCount); - //System.out.println("delCount:"+delCount); - writer.close(); - mainDir.close(); - } - - public class RunThread extends Thread { - IndexWriter writer; - volatile boolean run = true; - volatile Throwable ex; - int delCount = 0; - int addCount = 0; - int type; - final Random r = new Random(random.nextLong()); - - public RunThread(int type, IndexWriter writer) { - this.type = type; - this.writer = writer; - } - - @Override - public void run() { - try { - while (run) { - //int n = random.nextInt(2); - if (type == 0) { - int i = seq.addAndGet(1); - Document doc = DocHelper.createDocument(i, "index1", 10); - writer.addDocument(doc); - addCount++; - } else if (type == 1) { - // we may or may not delete because the term may not exist, - // however we're opening and closing the reader rapidly - IndexReader reader = writer.getReader(); - int id = r.nextInt(seq.intValue()); - Term term = new Term("id", Integer.toString(id)); - int count = TestIndexWriterReader.count(term, reader); - writer.deleteDocuments(term); - reader.close(); - delCount += count; - } - } - } catch (Throwable ex) { - ex.printStackTrace(System.out); - this.ex = ex; - run = false; - } - } - } -}