Merge branch 'stable-2.13'

* stable-2.13:
  Drain executor of index change requests before closing index

Change-Id: I2d676adf60d2eab0f9f7602b124574050af0ee3d
This commit is contained in:
David Pursehouse
2016-12-31 10:15:56 +00:00
10 changed files with 45 additions and 16 deletions

View File

@@ -97,4 +97,8 @@ public class ChangeSubIndex extends AbstractLuceneIndex<Change.Id, ChangeData>
}
super.add(doc, values);
}
@Override
public void stop() {
}
}

View File

@@ -205,4 +205,8 @@ public class LuceneAccountIndex
// to reindex when those change.
return accountCache.get(id);
}
@Override
public void stop() {
}
}

View File

@@ -28,12 +28,11 @@ import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Collections2;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
@@ -96,6 +95,7 @@ import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
/**
* Secondary index implementation using Apache Lucene.
@@ -189,22 +189,19 @@ public class LuceneChangeIndex implements ChangeIndex {
}
}
@Override
public void stop() {
MoreExecutors.shutdownAndAwaitTermination(
executor, Long.MAX_VALUE, TimeUnit.SECONDS);
}
@Override
public void close() {
List<ListenableFuture<?>> closeFutures = Lists.newArrayListWithCapacity(2);
closeFutures.add(executor.submit(new Runnable() {
@Override
public void run() {
openIndex.close();
}
}));
closeFutures.add(executor.submit(new Runnable() {
@Override
public void run() {
closedIndex.close();
}
}));
Futures.getUnchecked(Futures.allAsList(closeFutures));
try {
openIndex.close();
} finally {
closedIndex.close();
}
}
@Override