From 403627101f28fc2bfa88acff6e7ad0a60037d0fa Mon Sep 17 00:00:00 2001 From: a Date: Sat, 13 Jun 2026 09:20:51 +0100 Subject: [PATCH] Make policy store reads transactional for off-request scheduled triggers --- .../software/proprietary/policy/store/JpaPolicyStore.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/proprietary/src/main/java/stirling/software/proprietary/policy/store/JpaPolicyStore.java b/app/proprietary/src/main/java/stirling/software/proprietary/policy/store/JpaPolicyStore.java index 4836477ce1..9170ebe0c3 100644 --- a/app/proprietary/src/main/java/stirling/software/proprietary/policy/store/JpaPolicyStore.java +++ b/app/proprietary/src/main/java/stirling/software/proprietary/policy/store/JpaPolicyStore.java @@ -60,12 +60,17 @@ public class JpaPolicyStore implements PolicyStore { } @Override + @Transactional public List all() { return repository.listAll().stream().map(this::toPolicy).toList(); } @Override + @Transactional public List findByTriggerType(String triggerType) { + // @Transactional is required even for reads: the scheduled folder-watch/schedule triggers + // call this from a background virtual-thread executor where no request context or + // transaction is active, so Panache would otherwise throw ContextNotActiveException. return repository.findByTriggerTypeAndEnabledTrue(triggerType).stream() .map(this::toPolicy) .toList();