[Fix] Ignore updates if update observer is already shutdown

This commit is contained in:
Robert von Burg 2020-08-11 21:52:15 +02:00
parent 5d7aa1945c
commit 145678639f
1 changed files with 6 additions and 3 deletions

View File

@ -21,6 +21,7 @@ import static li.strolch.runtime.StrolchConstants.SYSTEM_USER_AGENT;
import java.text.MessageFormat;
import java.util.List;
import java.util.ResourceBundle;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
@ -80,7 +81,9 @@ public class DefaultObserverHandler implements ObserverHandler {
if (event.added.isEmpty() && event.updated.isEmpty() && event.removed.isEmpty())
return;
this.future = this.agent.getExecutor("Observer").submit(() -> doUpdates(event));
ExecutorService service = this.agent.getExecutor("Observer");
if (!service.isShutdown())
this.future = service.submit(() -> doUpdates(event));
}
protected void doUpdates(ObserverEvent event) {
@ -163,8 +166,8 @@ public class DefaultObserverHandler implements ObserverHandler {
OperationsLog operationsLog = container.getComponent(OperationsLog.class);
operationsLog.addMessage(new LogMessage(this.realm.getRealm(), SYSTEM_USER_AGENT,
Locator.valueOf(AGENT, ObserverHandler.class.getName(), type, StrolchAgent.getUniqueId()),
LogSeverity.Exception, LogMessageState.Information, ResourceBundle.getBundle("strolch-agent"), "agent.observers.update.failed")
.withException(e).value("type", type).value("reason", e));
LogSeverity.Exception, LogMessageState.Information, ResourceBundle.getBundle("strolch-agent"),
"agent.observers.update.failed").withException(e).value("type", type).value("reason", e));
}
}