SOLR-11440: Potential fix for better handling of exceptions thrown during closing.

This commit is contained in:
Andrzej Bialecki 2017-10-05 10:45:28 +02:00
parent 6b327fa404
commit 77fc1885c7
1 changed files with 9 additions and 6 deletions

View File

@ -37,7 +37,6 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Collectors;
@ -147,18 +146,22 @@ public class ScheduledTriggers implements Closeable {
if (isClosed) {
throw new AlreadyClosedException("ScheduledTriggers has been closed and cannot be used anymore");
}
ScheduledTrigger st = null;
ScheduledTrigger st;
try {
st = new ScheduledTrigger(newTrigger, zkClient, queueStats);
} catch (Exception e) {
//TODO to decide what to do
log.error("Failed to add trigger", e);
if (isClosed) {
throw new AlreadyClosedException("ScheduledTriggers has been closed and cannot be used anymore");
}
if (!zkClient.isConnected() || zkClient.isClosed()) {
log.error("Failed to add trigger " + newTrigger.getName() + " - closing or disconnected from ZK", e);
} else {
log.error("Failed to add trigger " + newTrigger.getName(), e);
}
return;
}
ScheduledTrigger scheduledTrigger = st;
ScheduledTrigger old = scheduledTriggers.putIfAbsent(newTrigger.getName(), scheduledTrigger);
if (old != null) {
if (old.trigger.equals(newTrigger)) {