From 44738c3a2d6236fee830ba5438eb82f26e0879bb Mon Sep 17 00:00:00 2001 From: Philip Marzullo Date: Mon, 12 Oct 2020 11:43:35 -0400 Subject: [PATCH] 0004581: Heartbeat job should catch exceptions from heartbeat listeners --- .../jumpmind/symmetric/service/impl/DataService.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java index 268c2936ea..b6dcb12e04 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java @@ -2906,10 +2906,16 @@ public void heartbeat(boolean force) { if (listeners.size() > 0) { Node me = engine.getNodeService().findIdentity(); if (me != null) { + List successfulListeners = new ArrayList(); for (IHeartbeatListener l : listeners) { - l.heartbeat(me); + try { + l.heartbeat(me); + successfulListeners.add(l); + } catch(Throwable e) { + log.error("Failed to execute IHeartbeatListener " + l.getClass().getSimpleName(), e); + } } - updateLastHeartbeatTime(listeners); + updateLastHeartbeatTime(successfulListeners); } else { log.debug("Did not run the heartbeat process because the node has not been configured"); }