From dc188605d4d988085f2a811b6b275e00a30e854b Mon Sep 17 00:00:00 2001 From: Andrew Shvayka Date: Tue, 20 Dec 2016 12:52:16 +0200 Subject: [PATCH 1/2] Fix --- .../actors/rule/RuleActorMessageProcessor.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/actors/rule/RuleActorMessageProcessor.java b/application/src/main/java/org/thingsboard/server/actors/rule/RuleActorMessageProcessor.java index 82011c0d3c..1f64a923f1 100644 --- a/application/src/main/java/org/thingsboard/server/actors/rule/RuleActorMessageProcessor.java +++ b/application/src/main/java/org/thingsboard/server/actors/rule/RuleActorMessageProcessor.java @@ -234,18 +234,18 @@ class RuleActorMessageProcessor extends ComponentMsgProcessor { logger.info("[{}] Rule configuration was updated from {} to {}.", entityId, oldRuleMd, ruleMd); try { fetchPluginInfo(); - if (!Objects.equals(oldRuleMd.getFilters(), ruleMd.getFilters())) { + if (filters == null || !Objects.equals(oldRuleMd.getFilters(), ruleMd.getFilters())) { logger.info("[{}] Rule filters require restart due to json change from {} to {}.", entityId, mapper.writeValueAsString(oldRuleMd.getFilters()), mapper.writeValueAsString(ruleMd.getFilters())); stopFilters(); initFilters(); } - if (!Objects.equals(oldRuleMd.getProcessor(), ruleMd.getProcessor())) { + if (processor == null || !Objects.equals(oldRuleMd.getProcessor(), ruleMd.getProcessor())) { logger.info("[{}] Rule processor require restart due to configuration change.", entityId); stopProcessor(); initProcessor(); } - if (!Objects.equals(oldRuleMd.getAction(), ruleMd.getAction())) { + if (action == null || !Objects.equals(oldRuleMd.getAction(), ruleMd.getAction())) { logger.info("[{}] Rule action require restart due to configuration change.", entityId); stopAction(); initAction(); @@ -272,13 +272,15 @@ class RuleActorMessageProcessor extends ComponentMsgProcessor { if (action != null) { if (filters != null) { filters.forEach(f -> f.resume()); + } else { + initFilters(); } if (processor != null) { processor.resume(); + } else { + initProcessor(); } - if (action != null) { - action.resume(); - } + action.resume(); logger.info("[{}] Rule resumed.", entityId); } else { start(); From 6ff2d649741b0579d6fb591e1cfa3d1706649b84 Mon Sep 17 00:00:00 2001 From: Andrew Shvayka Date: Tue, 20 Dec 2016 17:31:05 +0200 Subject: [PATCH 2/2] Plugin update fix --- .../server/actors/plugin/PluginActorMessageProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/actors/plugin/PluginActorMessageProcessor.java b/application/src/main/java/org/thingsboard/server/actors/plugin/PluginActorMessageProcessor.java index 72ae4bb5b5..c1d2678ac3 100644 --- a/application/src/main/java/org/thingsboard/server/actors/plugin/PluginActorMessageProcessor.java +++ b/application/src/main/java/org/thingsboard/server/actors/plugin/PluginActorMessageProcessor.java @@ -181,7 +181,7 @@ public class PluginActorMessageProcessor extends ComponentMsgProcessor logger.info("[{}] Plugin requires restart due to clazz change from {} to {}.", entityId, oldPluginMd.getClazz(), pluginMd.getClazz()); requiresRestart = true; - } else if (oldPluginMd.getConfiguration().equals(pluginMd.getConfiguration())) { + } else if (!oldPluginMd.getConfiguration().equals(pluginMd.getConfiguration())) { logger.info("[{}] Plugin requires restart due to configuration change from {} to {}.", entityId, oldPluginMd.getConfiguration(), pluginMd.getConfiguration()); requiresRestart = true;