From 9f19f9536754ca381c56d4a332850844b44df7d6 Mon Sep 17 00:00:00 2001 From: renczesstefan Date: Wed, 4 Feb 2026 11:40:52 +0100 Subject: [PATCH] [NAE-2369] Remove global functions of cache Replaced `reloadCachedGlobalFunctions` with a new method `removeCachedPetriNetFunctions` in `PetriNetService` and adjusted its usage to improve cache management. Updated the `FieldActionsCacheService` to evict specific cache entries more explicitly, ensuring proper cleanup. --- .../engine/petrinet/service/PetriNetService.java | 2 +- .../engine/workflow/service/FieldActionsCacheService.java | 7 ++++++- .../service/interfaces/IFieldActionsCacheService.java | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/application-engine/src/main/java/com/netgrif/application/engine/petrinet/service/PetriNetService.java b/application-engine/src/main/java/com/netgrif/application/engine/petrinet/service/PetriNetService.java index 882821231a..c8715a6f33 100644 --- a/application-engine/src/main/java/com/netgrif/application/engine/petrinet/service/PetriNetService.java +++ b/application-engine/src/main/java/com/netgrif/application/engine/petrinet/service/PetriNetService.java @@ -653,7 +653,7 @@ protected void deletePetriNet(String processId, LoggedUser loggedUser, boolean f publisher.publishEvent(new ProcessDeleteEvent(petriNet, EventPhase.PRE)); repository.deleteBy_id(petriNet.getObjectId()); evictCache(petriNet); - functionCacheService.reloadCachedGlobalFunctions(petriNet); + functionCacheService.removeCachedPetriNetFunctions(petriNet.getIdentifier()); if (petriNet.isDefaultVersion()) { PetriNet processToMakeDefault = self.getLatestVersionByIdentifier(petriNet.getIdentifier()); if (processToMakeDefault != null) { diff --git a/application-engine/src/main/java/com/netgrif/application/engine/workflow/service/FieldActionsCacheService.java b/application-engine/src/main/java/com/netgrif/application/engine/workflow/service/FieldActionsCacheService.java index e477ead50e..0f6818ded2 100644 --- a/application-engine/src/main/java/com/netgrif/application/engine/workflow/service/FieldActionsCacheService.java +++ b/application-engine/src/main/java/com/netgrif/application/engine/workflow/service/FieldActionsCacheService.java @@ -69,8 +69,13 @@ public void cachePetriNetFunctions(PetriNet petriNet) { } @Override - public void reloadCachedGlobalFunctions(String processIdentifier) { + public void removeCachedPetriNetFunctions(String processIdentifier) { getRequiredCache(CacheMapKeys.GLOBAL_FUNCTIONS).evictIfPresent(processIdentifier); + } + + @Override + public void reloadCachedGlobalFunctions(String processIdentifier) { + removeCachedPetriNetFunctions(processIdentifier); PetriNet petriNet = petriNetService.getDefaultVersionByIdentifier(processIdentifier); if (petriNet != null) { cachePetriNetFunctions(petriNet); diff --git a/application-engine/src/main/java/com/netgrif/application/engine/workflow/service/interfaces/IFieldActionsCacheService.java b/application-engine/src/main/java/com/netgrif/application/engine/workflow/service/interfaces/IFieldActionsCacheService.java index e71f0f37a1..84bb7f4c8e 100644 --- a/application-engine/src/main/java/com/netgrif/application/engine/workflow/service/interfaces/IFieldActionsCacheService.java +++ b/application-engine/src/main/java/com/netgrif/application/engine/workflow/service/interfaces/IFieldActionsCacheService.java @@ -13,10 +13,12 @@ public interface IFieldActionsCacheService { void cachePetriNetFunctions(PetriNet petriNet); - void reloadCachedGlobalFunctions(String petriNetId); + void reloadCachedGlobalFunctions(String processIdentifier); void reloadCachedGlobalFunctions(PetriNet petriNet); + void removeCachedPetriNetFunctions(String processIdentifier); + Closure getCompiledAction(Action action, boolean shouldRewriteCachedActions); List getCachedFunctions(List functions);