From 8ab9326f393af9bc3c7b8ac023a12dd12cb31f76 Mon Sep 17 00:00:00 2001 From: AnuGayan Date: Tue, 11 Jul 2023 17:07:04 +0530 Subject: [PATCH 1/3] Improve SPLIT_PATTERN to fix mapping errors with advance json objects Related Issue: https://github.com/wso2-enterprise/wso2-apim-internal/issues/3695 --- .../java/io/siddhi/core/util/transport/TemplateBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; From 4f0dcf7c6c79a754caea26da5c506c67bc0d8787 Mon Sep 17 00:00:00 2001 From: AnuGayan Date: Mon, 11 Sep 2023 12:53:21 +0530 Subject: [PATCH 2/3] Add CronTrigger to ExternalReferencedHolder --- findbugs-exclude.xml | 4 ++++ .../java/io/siddhi/core/trigger/CronTrigger.java | 13 ++++++++----- .../util/parser/helper/DefinitionParserHelper.java | 1 + 3 files changed, 13 insertions(+), 5 deletions(-) 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/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/parser/helper/DefinitionParserHelper.java b/modules/siddhi-core/src/main/java/io/siddhi/core/util/parser/helper/DefinitionParserHelper.java index 8bb2db00b0..4764ecb02a 100644 --- a/modules/siddhi-core/src/main/java/io/siddhi/core/util/parser/helper/DefinitionParserHelper.java +++ b/modules/siddhi-core/src/main/java/io/siddhi/core/util/parser/helper/DefinitionParserHelper.java @@ -304,6 +304,7 @@ public static void addEventTrigger(TriggerDefinition triggerDefinition, trigger.init(triggerDefinition, siddhiAppContext, streamJunction); siddhiAppContext.addTrigger(trigger); eventTriggerMap.putIfAbsent(trigger.getId(), trigger); + siddhiAppContext.addEternalReferencedHolder(trigger); } } From ef042f9ed377c12ec41ae3ab2c8e87583a2d9346 Mon Sep 17 00:00:00 2001 From: AnuGayan Date: Mon, 11 Sep 2023 15:32:06 +0530 Subject: [PATCH 3/3] Add CronTrigger to ExternalReferencedHolder --- .../main/java/io/siddhi/core/SiddhiAppRuntimeImpl.java | 9 +++++++++ .../core/util/parser/helper/DefinitionParserHelper.java | 1 - 2 files changed, 9 insertions(+), 1 deletion(-) 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/util/parser/helper/DefinitionParserHelper.java b/modules/siddhi-core/src/main/java/io/siddhi/core/util/parser/helper/DefinitionParserHelper.java index 4764ecb02a..8bb2db00b0 100644 --- a/modules/siddhi-core/src/main/java/io/siddhi/core/util/parser/helper/DefinitionParserHelper.java +++ b/modules/siddhi-core/src/main/java/io/siddhi/core/util/parser/helper/DefinitionParserHelper.java @@ -304,7 +304,6 @@ public static void addEventTrigger(TriggerDefinition triggerDefinition, trigger.init(triggerDefinition, siddhiAppContext, streamJunction); siddhiAppContext.addTrigger(trigger); eventTriggerMap.putIfAbsent(trigger.getId(), trigger); - siddhiAppContext.addEternalReferencedHolder(trigger); } }