Merge branch 'master' of https://code.google.com/p/plexi
diff --git a/src/com/google/enterprise/adaptor/AsyncDocIdSender.java b/src/com/google/enterprise/adaptor/AsyncDocIdSender.java
index d1342ad..7aa0f77 100644
--- a/src/com/google/enterprise/adaptor/AsyncDocIdSender.java
+++ b/src/com/google/enterprise/adaptor/AsyncDocIdSender.java
@@ -74,13 +74,13 @@
private class WorkerRunnable implements Runnable {
@Override
public void run() {
- List<DocIdSender.Item> list = new ArrayList<DocIdSender.Item>();
+ Set<DocIdSender.Item> items = new LinkedHashSet<DocIdSender.Item>();
try {
while (true) {
BlockingQueueBatcher.take(
- queue, list, maxBatchSize, maxLatency, maxLatencyUnit);
- itemPusher.pushItems(list.iterator(), null);
- list.clear();
+ queue, items, maxBatchSize, maxLatency, maxLatencyUnit);
+ itemPusher.pushItems(items.iterator(), null);
+ items.clear();
}
} catch (InterruptedException ex) {
log.log(Level.FINE, "AsyncDocIdSender worker shutting down", ex);
@@ -90,8 +90,8 @@
// If we were interrupted between calls to take(), then take() may
// have interrupted itself before draining the queue; might as well
// send everything that was put on the queue.
- queue.drainTo(list);
- itemPusher.pushItems(list.iterator(),
+ queue.drainTo(items);
+ itemPusher.pushItems(items.iterator(),
ExceptionHandlers.noRetryHandler());
} catch (InterruptedException ex2) {
// Ignore, because we are going to interrupt anyway. This should