pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / contrib / benchmark / src / java / org / apache / lucene / benchmark / byTask / tasks / RollbackIndexTask.java
1 package org.apache.lucene.benchmark.byTask.tasks;
2
3 /**
4  * Licensed to the Apache Software Foundation (ASF) under one or more
5  * contributor license agreements.  See the NOTICE file distributed with
6  * this work for additional information regarding copyright ownership.
7  * The ASF licenses this file to You under the Apache License, Version 2.0
8  * (the "License"); you may not use this file except in compliance with
9  * the License.  You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19
20 import java.io.IOException;
21 import java.io.PrintStream;
22
23 import org.apache.lucene.benchmark.byTask.PerfRunData;
24 import org.apache.lucene.index.IndexWriter;
25
26 /**
27  * Rollback the index writer.
28  */
29 public class RollbackIndexTask extends PerfTask {
30
31   public RollbackIndexTask(PerfRunData runData) {
32     super(runData);
33   }
34
35   boolean doWait = true;
36
37   @Override
38   public int doLogic() throws IOException {
39     IndexWriter iw = getRunData().getIndexWriter();
40     if (iw != null) {
41       // If infoStream was set to output to a file, close it.
42       PrintStream infoStream = iw.getInfoStream();
43       if (infoStream != null && infoStream != System.out
44           && infoStream != System.err) {
45         infoStream.close();
46       }
47       iw.rollback();
48       getRunData().setIndexWriter(null);
49     }
50     return 1;
51   }
52 }