From 1255c7d15dd84e8ec9cc42c4a1841891a9c2c62c Mon Sep 17 00:00:00 2001 From: Eric Long Date: Wed, 26 Jul 2023 14:09:29 -0400 Subject: [PATCH] 0005935: Failed to execute IHeartbeatListener PushHeartbeatListener java.lang.NullPointerException --- .../symmetric/job/PushHeartbeatListener.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/job/PushHeartbeatListener.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/job/PushHeartbeatListener.java index 58ecfa9739..e3406d4a6a 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/job/PushHeartbeatListener.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/job/PushHeartbeatListener.java @@ -43,7 +43,6 @@ import org.jumpmind.symmetric.service.ClusterConstants; import org.jumpmind.symmetric.service.IDataExtractorService; import org.jumpmind.symmetric.service.IParameterService; -import org.jumpmind.symmetric.service.IStatisticService; import org.jumpmind.symmetric.statistic.IStatisticManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -100,14 +99,16 @@ public void heartbeat(Node me) { totalRowsLoaded = totalLoadedRowsMap.keySet().iterator().next(); oldestLoadedDate = totalLoadedRowsMap.values().iterator().next(); } - IJob purgeOutgoingJob = engine.getJobManager().getJob(ClusterConstants.PURGE_OUTGOING); - purgeOutgoingLastMs = purgeOutgoingJob.getLastExecutionTimeInMs(); - purgeOutgoingLastRun = purgeOutgoingJob.getLastFinishTime(); - purgeOutgoingAverage = purgeOutgoingJob.getAverageExecutionTimeInMs(); - IJob routeJob = engine.getJobManager().getJob(ClusterConstants.ROUTE); - routingAveragetMs = routeJob.getAverageExecutionTimeInMs(); - routingLastRun = routeJob.getLastFinishTime(); - routingLastMs = routeJob.getLastExecutionTimeInMs(); + if (engine.getJobManager().isStarted()) { + IJob purgeOutgoingJob = engine.getJobManager().getJob(ClusterConstants.PURGE_OUTGOING); + purgeOutgoingLastMs = purgeOutgoingJob.getLastExecutionTimeInMs(); + purgeOutgoingLastRun = purgeOutgoingJob.getLastFinishTime(); + purgeOutgoingAverage = purgeOutgoingJob.getAverageExecutionTimeInMs(); + IJob routeJob = engine.getJobManager().getJob(ClusterConstants.ROUTE); + routingAveragetMs = routeJob.getAverageExecutionTimeInMs(); + routingLastRun = routeJob.getLastFinishTime(); + routingLastMs = routeJob.getLastExecutionTimeInMs(); + } symDataSize = engine.getDataService().countData(); } if (!parameterService.getExternalId().equals(me.getExternalId())