mirror of https://github.com/apache/lucene.git
SOLR-11440: Potential fix for better handling of exceptions thrown during closing.
This commit is contained in:
parent
6b327fa404
commit
77fc1885c7
|
@ -37,7 +37,6 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -147,18 +146,22 @@ public class ScheduledTriggers implements Closeable {
|
||||||
if (isClosed) {
|
if (isClosed) {
|
||||||
throw new AlreadyClosedException("ScheduledTriggers has been closed and cannot be used anymore");
|
throw new AlreadyClosedException("ScheduledTriggers has been closed and cannot be used anymore");
|
||||||
}
|
}
|
||||||
ScheduledTrigger st = null;
|
ScheduledTrigger st;
|
||||||
try {
|
try {
|
||||||
st = new ScheduledTrigger(newTrigger, zkClient, queueStats);
|
st = new ScheduledTrigger(newTrigger, zkClient, queueStats);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
//TODO to decide what to do
|
if (isClosed) {
|
||||||
log.error("Failed to add trigger", e);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ScheduledTrigger scheduledTrigger = st;
|
ScheduledTrigger scheduledTrigger = st;
|
||||||
|
|
||||||
|
|
||||||
ScheduledTrigger old = scheduledTriggers.putIfAbsent(newTrigger.getName(), scheduledTrigger);
|
ScheduledTrigger old = scheduledTriggers.putIfAbsent(newTrigger.getName(), scheduledTrigger);
|
||||||
if (old != null) {
|
if (old != null) {
|
||||||
if (old.trigger.equals(newTrigger)) {
|
if (old.trigger.equals(newTrigger)) {
|
||||||
|
|
Loading…
Reference in New Issue