You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by dg...@apache.org on 2022/08/30 09:37:34 UTC
[unomi] branch master updated: UNOMI-652 : fix concurrency issue while loading groovy actions (#482)
This is an automated email from the ASF dual-hosted git repository.
dgriffon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git
The following commit(s) were added to refs/heads/master by this push:
new e114398d2 UNOMI-652 : fix concurrency issue while loading groovy actions (#482)
e114398d2 is described below
commit e114398d221def779e7c1277a59a56dc3ec16c84
Author: David Griffon <dg...@jahia.com>
AuthorDate: Tue Aug 30 11:37:28 2022 +0200
UNOMI-652 : fix concurrency issue while loading groovy actions (#482)
---
.../groovy/actions/services/impl/GroovyActionsServiceImpl.java | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/extensions/groovy-actions/services/src/main/java/org/apache/unomi/groovy/actions/services/impl/GroovyActionsServiceImpl.java b/extensions/groovy-actions/services/src/main/java/org/apache/unomi/groovy/actions/services/impl/GroovyActionsServiceImpl.java
index fc2f62c1f..b72a089b4 100644
--- a/extensions/groovy-actions/services/src/main/java/org/apache/unomi/groovy/actions/services/impl/GroovyActionsServiceImpl.java
+++ b/extensions/groovy-actions/services/src/main/java/org/apache/unomi/groovy/actions/services/impl/GroovyActionsServiceImpl.java
@@ -131,7 +131,7 @@ public class GroovyActionsServiceImpl implements GroovyActionsService {
logger.info("Groovy action service initialized.");
}
- public void onDestroy(){
+ public void onDestroy() {
logger.debug("onDestroy Method called");
scheduledFuture.cancel(true);
}
@@ -251,11 +251,12 @@ public class GroovyActionsServiceImpl implements GroovyActionsService {
}
private void refreshGroovyActions() {
+ Map<String, GroovyCodeSource> refreshedGroovyCodeSourceMap = new HashMap<>();
GroovyCodeSource baseScript = groovyCodeSourceMap.get(BASE_SCRIPT_NAME);
- groovyCodeSourceMap = new HashMap<>();
- groovyCodeSourceMap.put(BASE_SCRIPT_NAME, baseScript);
- persistenceService.getAllItems(GroovyAction.class).forEach(groovyAction -> groovyCodeSourceMap
+ refreshedGroovyCodeSourceMap.put(BASE_SCRIPT_NAME, baseScript);
+ persistenceService.getAllItems(GroovyAction.class).forEach(groovyAction -> refreshedGroovyCodeSourceMap
.put(groovyAction.getName(), buildClassScript(groovyAction.getScript(), groovyAction.getName())));
+ groovyCodeSourceMap = refreshedGroovyCodeSourceMap;
}
private void initializeTimers() {