From 2ae8b0fbce81651a8d9c8f31b30970d4aa64db71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Mon, 19 Aug 2024 13:18:00 +0200 Subject: [PATCH] RED-9837: Fixed not working timeout with endless loop in drools then block --- .../service/drools/ComponentDroolsExecutionService.java | 5 +++-- .../server/service/drools/EntityDroolsExecutionService.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/drools/ComponentDroolsExecutionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/drools/ComponentDroolsExecutionService.java index 7c385df5..bd674a66 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/drools/ComponentDroolsExecutionService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/drools/ComponentDroolsExecutionService.java @@ -104,8 +104,7 @@ public class ComponentDroolsExecutionService { }); try { - completableFuture.orTimeout(settings.getDroolsExecutionTimeoutSecs(document.getNumberOfPages()), TimeUnit.SECONDS) - .get(); + completableFuture.get(settings.getDroolsExecutionTimeoutSecs(document.getNumberOfPages()), TimeUnit.SECONDS); } catch (ExecutionException e) { logger.error(e, "Exception during rule execution"); kieSession.dispose(); @@ -117,6 +116,8 @@ public class ComponentDroolsExecutionService { logger.error(e, "Exception during rule execution"); kieSession.dispose(); throw new RuntimeException(e); + } catch (TimeoutException e) { + throw new DroolsTimeoutException(e, false, RuleFileType.COMPONENT); } List resultingFileAttributes = getFileAttributes(kieSession); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/drools/EntityDroolsExecutionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/drools/EntityDroolsExecutionService.java index b8c817f6..54dc95c8 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/drools/EntityDroolsExecutionService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/drools/EntityDroolsExecutionService.java @@ -142,8 +142,7 @@ public class EntityDroolsExecutionService { }); try { - completableFuture.orTimeout(settings.getDroolsExecutionTimeoutSecs(document.getNumberOfPages()), TimeUnit.SECONDS) - .get(); + completableFuture.get(settings.getDroolsExecutionTimeoutSecs(document.getNumberOfPages()), TimeUnit.SECONDS); } catch (ExecutionException e) { logger.error(e,"Exception during rule execution"); kieSession.dispose(); @@ -155,6 +154,8 @@ public class EntityDroolsExecutionService { logger.error(e,"Exception during rule execution"); kieSession.dispose(); throw new RuntimeException(e); + } catch (TimeoutException e) { + throw new DroolsTimeoutException(e, false, RuleFileType.ENTITY); } List resultingFileAttributes = getFileAttributes(kieSession);