Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Green2013-10-25 21:53:29 -0400
committerDavid Green2013-10-25 21:53:29 -0400
commita8f8ef328a4be39f6dc50a7ed9a4a62e9adae09f (patch)
tree95e00a96d7b60f4a13d40b6a34000474bdffc718
parent77caae4506b7f806d7f740e759ddcd269393588d (diff)
downloadorg.eclipse.mylyn.tasks-a8f8ef328a4be39f6dc50a7ed9a4a62e9adae09f.tar.gz
org.eclipse.mylyn.tasks-a8f8ef328a4be39f6dc50a7ed9a4a62e9adae09f.tar.xz
org.eclipse.mylyn.tasks-a8f8ef328a4be39f6dc50a7ed9a4a62e9adae09f.zip
Revert "415140: CorruptIndexException in tasklist index"
-rw-r--r--org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java47
-rw-r--r--org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/TaskListIndexCorruptTest.java76
2 files changed, 5 insertions, 118 deletions
diff --git a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java
index 861ecc614..153c5df9a 100644
--- a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java
+++ b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java
@@ -54,7 +54,6 @@ import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.store.NIOFSDirectory;
import org.apache.lucene.util.Version;
@@ -1119,7 +1118,7 @@ public class TaskListIndex implements ITaskDataManagerListener, ITaskListChangeL
}
private void indexQueuedTasks(SubMonitor monitor) throws CorruptIndexException, LockObtainFailedException,
- IOException, CoreException {
+ IOException {
synchronized (reindexQueue) {
if (reindexQueue.isEmpty()) {
@@ -1149,17 +1148,8 @@ public class TaskListIndex implements ITaskDataManagerListener, ITaskListChangeL
}
if (writer == null) {
- try {
- writer = new IndexWriter(directory, TaskAnalyzer.instance(), false,
- IndexWriter.MaxFieldLength.UNLIMITED);
- } catch (CorruptIndexException e) {
- rebuildIndex = true;
- synchronized (reindexQueue) {
- reindexQueue.clear();
- }
- rebuildIndexCompletely(monitor);
- return;
- }
+ writer = new IndexWriter(directory, TaskAnalyzer.instance(), false,
+ IndexWriter.MaxFieldLength.UNLIMITED);
}
monitor.setWorkRemaining(workingQueue.size());
@@ -1212,17 +1202,8 @@ public class TaskListIndex implements ITaskDataManagerListener, ITaskListChangeL
monitor.beginTask(Messages.TaskListIndex_task_rebuilding_index, taskListState.indexableTasks.size());
try {
- IndexWriter writer;
- try {
- writer = createIndexWriter();
- } catch (CorruptIndexException e) {
- if (directory instanceof FSDirectory) {
- cleanDirectory(((FSDirectory) directory).getDirectory());
- writer = createIndexWriter();
- } else {
- throw e;
- }
- }
+ final IndexWriter writer = new IndexWriter(directory, TaskAnalyzer.instance(), true,
+ IndexWriter.MaxFieldLength.UNLIMITED);
try {
for (ITask task : taskListState.indexableTasks) {
@@ -1249,24 +1230,6 @@ public class TaskListIndex implements ITaskDataManagerListener, ITaskListChangeL
return multiStatus;
}
- private void cleanDirectory(File file) throws IOException {
- if (file.exists()) {
- File[] children = file.listFiles();
- if (children != null) {
- for (File child : children) {
- if (child.isDirectory()) {
- cleanDirectory(child);
- }
- child.delete();
- }
- }
- }
- }
-
- protected IndexWriter createIndexWriter() throws CorruptIndexException, LockObtainFailedException, IOException {
- return new IndexWriter(directory, TaskAnalyzer.instance(), true, IndexWriter.MaxFieldLength.UNLIMITED);
- }
-
/**
* @param writer
* @param task
diff --git a/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/TaskListIndexCorruptTest.java b/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/TaskListIndexCorruptTest.java
deleted file mode 100644
index 96c6c961d..000000000
--- a/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/TaskListIndexCorruptTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Tasktop Technologies and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.index.tests;
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Random;
-
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.junit.Test;
-
-public class TaskListIndexCorruptTest extends AbstractTaskListIndexTest {
-
- private void setupCorruptIndex() throws Exception {
- setupIndex();
- context.createLocalTask();
- index.waitUntilIdle();
-
- index.close();
- disposeIndex();
-
- corruptIndex();
- }
-
- private void corruptIndex() throws IOException {
- File[] files = tempDir.listFiles();
- if (files == null || files.length == 0) {
- throw new IllegalStateException("index has no files");
- }
- for (File file : files) {
- if (file.isFile()) {
- corruptFile(file);
- }
- }
- }
-
- private void corruptFile(File file) throws IOException {
- Random random = new Random(System.currentTimeMillis());
- long length = file.length();
- OutputStream stream = new FileOutputStream(file);
- try {
- byte[] bytes = new byte[1];
- for (long i = 0; i < length; ++i) {
- random.nextBytes(bytes);
- stream.write(bytes[0]);
- }
- } finally {
- stream.close();
- }
- }
-
- @Test
- public void testCorrupt() throws Exception {
- setupCorruptIndex();
- setupIndex();
-
- ITask task = context.createLocalTask();
-
- index.waitUntilIdle();
-
- assertTrue(index.matches(task, task.getSummary()));
- }
-}

Back to the top