diff --git a/findbugs-exclude.xml b/findbugs-exclude.xml index 72cc692e27..b33f4b2222 100644 --- a/findbugs-exclude.xml +++ b/findbugs-exclude.xml @@ -310,5 +310,9 @@ + + + + diff --git a/modules/siddhi-core/src/main/java/io/siddhi/core/SiddhiAppRuntimeImpl.java b/modules/siddhi-core/src/main/java/io/siddhi/core/SiddhiAppRuntimeImpl.java index 94cebdd140..f7d14102f3 100644 --- a/modules/siddhi-core/src/main/java/io/siddhi/core/SiddhiAppRuntimeImpl.java +++ b/modules/siddhi-core/src/main/java/io/siddhi/core/SiddhiAppRuntimeImpl.java @@ -625,6 +625,15 @@ public synchronized void shutdown() { StringUtil.removeCRLFCharacters(siddhiAppContext.getName()) + "'.", t); } } + for (Trigger trigger : siddhiAppContext.getTriggerHolders()) { + try { + trigger.stop(); + } catch (Throwable t) { + log.error(StringUtil.removeCRLFCharacters(ExceptionUtil.getMessageWithContext(t, siddhiAppContext)) + + " Error while stopping Trigger '" + StringUtil.removeCRLFCharacters(trigger.getId()) + + "' in Siddhi app '" + StringUtil.removeCRLFCharacters(siddhiAppContext.getName()) + "'.", t); + } + } inputManager.disconnect(); Thread thread = new Thread(new Runnable() { diff --git a/modules/siddhi-core/src/main/java/io/siddhi/core/trigger/CronTrigger.java b/modules/siddhi-core/src/main/java/io/siddhi/core/trigger/CronTrigger.java index 4cfb4e9599..5a4ca6c64f 100644 --- a/modules/siddhi-core/src/main/java/io/siddhi/core/trigger/CronTrigger.java +++ b/modules/siddhi-core/src/main/java/io/siddhi/core/trigger/CronTrigger.java @@ -46,7 +46,7 @@ */ public class CronTrigger extends AbstractTrigger implements Job { - protected static final Logger LOG = LogManager.getLogger(CronTrigger.class); + private static final Logger log = LogManager.getLogger(CronTrigger.class); private TriggerDefinition triggerDefinition; private SiddhiAppContext siddhiAppContext; @@ -100,9 +100,12 @@ public void stop() { try { if (scheduler != null) { scheduler.deleteJob(new JobKey(jobName, jobGroup)); + if (log.isDebugEnabled()) { + log.debug("Scheduler job: " + jobName + " Group: " + jobGroup + " has successfully stopped"); + } } } catch (SchedulerException e) { - LOG.error(ExceptionUtil.getMessageWithContext(e, siddhiAppContext) + + log.error(ExceptionUtil.getMessageWithContext(e, siddhiAppContext) + " Error while removing the cron trigger job '" + jobGroup + "':'" + jobName + "'", e); } } @@ -134,7 +137,7 @@ private void scheduleCronJob(String cronString, String elementId) { scheduler.scheduleJob(job, trigger); } catch (SchedulerException e) { - LOG.error(ExceptionUtil.getMessageWithContext(e, siddhiAppContext) + + log.error(ExceptionUtil.getMessageWithContext(e, siddhiAppContext) + " Error while instantiating quartz scheduler for trigger '" + triggerDefinition.getId() + "'.", e); } } @@ -143,8 +146,8 @@ private void scheduleCronJob(String cronString, String elementId) { public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { JobDataMap dataMap = jobExecutionContext.getJobDetail().getJobDataMap(); CronTrigger cronEventTrigger = (CronTrigger) dataMap.get("trigger"); - if (LOG.isDebugEnabled()) { - LOG.debug("Running Trigger Job '" + cronEventTrigger.getId() + "'"); + if (log.isDebugEnabled()) { + log.debug("Running Trigger Job '" + cronEventTrigger.getId() + "'"); } cronEventTrigger.sendEvent(); } diff --git a/modules/siddhi-core/src/main/java/io/siddhi/core/util/transport/TemplateBuilder.java b/modules/siddhi-core/src/main/java/io/siddhi/core/util/transport/TemplateBuilder.java index 1c07949fd3..fb3380e62a 100644 --- a/modules/siddhi-core/src/main/java/io/siddhi/core/util/transport/TemplateBuilder.java +++ b/modules/siddhi-core/src/main/java/io/siddhi/core/util/transport/TemplateBuilder.java @@ -39,7 +39,7 @@ public class TemplateBuilder { private static final Pattern DYNAMIC_PATTERN = Pattern.compile("(\\{\\{[^{}]*\\}\\})|[{}]"); - private static final String SPLIT_PATTERN = "(\\{.\\{|\\}.\\})"; + private static final String SPLIT_PATTERN = "(\\{\\.\\{|\\}\\.\\})"; private int[] positionArray; private String[] splitTemplateArray; private boolean isObjectMessage = false;