summaryrefslogtreecommitdiffstats
path: root/jdisc_core
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-05-14 22:55:48 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-05-14 22:55:48 +0200
commitd2504e056be316208b2b6dca94756ee91b0e86f2 (patch)
treeb9462205eae0f5addf48151dd4777ffbb3f1bee4 /jdisc_core
parent1ecd6173345932b2ad0bc79d7d1959ac61c69276 (diff)
Catch everything and also guard stop and destroy with a watchdog.
Diffstat (limited to 'jdisc_core')
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/core/BootstrapDaemon.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/core/BootstrapDaemon.java b/jdisc_core/src/main/java/com/yahoo/jdisc/core/BootstrapDaemon.java
index 2a478fb7add..33d03d29f7d 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/core/BootstrapDaemon.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/core/BootstrapDaemon.java
@@ -76,6 +76,14 @@ public class BootstrapDaemon implements Daemon {
thread.start();
try {
task.run();
+ } catch (Exception e) {
+ log.log(Level.WARNING, "Exception caught during BootstrapDaemon." + name, e);
+ throw e;
+ } catch (Error e) {
+ log.log(Level.WARNING, "Error caught during BootstrapDaemon." + name, e);
+ throw e;
+ } catch (Throwable thrown) {
+ log.log(Level.WARNING, "Throwable caught during BootstrapDaemon." + name, thrown);
} finally {
complete.countDown();
thread.join();
@@ -115,12 +123,15 @@ public class BootstrapDaemon implements Daemon {
@Override
public void stop() throws Exception {
- loader.stop();
+ startWithWatchDog("stop", 60, TimeUnit.SECONDS, () -> loader.stop());
}
@Override
public void destroy() {
- loader.destroy();
+ try {
+ startWithWatchDog("destroy", 60, TimeUnit.SECONDS, () -> loader.destroy());
+ } catch (Exception e) {
+ }
}
}