@Override public void handle(Signal sig) { if (sig != null) { for (SigListener listener : listeners) { try { LOGGER.debug("Running Signal Handler {}.onSignal()", listener.getClass().getName()); listener.onSignal(sig.toString()); } catch (Exception e) { LOGGER.warn(String.format("Signal handler %s.onSignal() threw an exception:", listener.getClass().getName()), e); } } // signalling is a rare yet important event - let's always log it LOGGER.info("Signal propagated: " + sig); } else { LOGGER.error("Internal Error: null signal received"); } } }