|
Lucene example source code file (TestIndexWriterOnJRECrash.java)
The Lucene TestIndexWriterOnJRECrash.java source code
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.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.Constants;
import org.apache.lucene.util._TestUtil;
/**
* Runs TestNRTThreads in a separate process, crashes the JRE in the middle
* of execution, then runs checkindex to make sure its not corrupt.
*/
public class TestIndexWriterOnJRECrash extends TestNRTThreads {
private File tempDir;
@Override
public void setUp() throws Exception {
super.setUp();
tempDir = _TestUtil.getTempDir("jrecrash");
tempDir.delete();
tempDir.mkdir();
}
@Override
public void testNRTThreads() throws Exception {
String vendor = Constants.JAVA_VENDOR;
assumeTrue(vendor + " JRE not supported.",
vendor.startsWith("Sun") || vendor.startsWith("Apple"));
// if we are not the fork
if (System.getProperty("tests.crashmode") == null) {
// try up to 10 times to create an index
for (int i = 0; i < 10; i++) {
forkTest();
// if we succeeded in finding an index, we are done.
if (checkIndexes(tempDir))
return;
}
} else {
// we are the fork, setup a crashing thread
final int crashTime = _TestUtil.nextInt(random, 500, 4000);
Thread t = new Thread() {
@Override
public void run() {
try {
Thread.sleep(crashTime);
} catch (InterruptedException e) {}
crashJRE();
}
};
t.setPriority(Thread.MAX_PRIORITY);
t.start();
// run the test until we crash.
for (int i = 0; i < 1000; i++) {
super.testNRTThreads();
}
}
}
/** fork ourselves in a new jvm. sets -Dtests.crashmode=true */
public void forkTest() throws Exception {
List<String> cmd = new ArrayList
Other Lucene examples (source code examples)Here is a short list of links related to this Lucene TestIndexWriterOnJRECrash.java source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.