From 7430bd13524b5c1aff92e9506be2e37bbb416cc4 Mon Sep 17 00:00:00 2001 From: FineAndDandy Date: Thu, 25 Jun 2026 14:47:33 +0000 Subject: [PATCH] Add MAXWORK lifecycle to final lifecycle states --- .../querymetric/BaseQueryMetric.java | 4 +- .../querymetric/BaseQueryMetricTest.java | 42 +++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 microservices/services/query-metric/api/src/test/java/datawave/microservice/querymetric/BaseQueryMetricTest.java diff --git a/microservices/services/query-metric/api/src/main/java/datawave/microservice/querymetric/BaseQueryMetric.java b/microservices/services/query-metric/api/src/main/java/datawave/microservice/querymetric/BaseQueryMetric.java index 2a63aa9307c..75f1e50462a 100644 --- a/microservices/services/query-metric/api/src/main/java/datawave/microservice/querymetric/BaseQueryMetric.java +++ b/microservices/services/query-metric/api/src/main/java/datawave/microservice/querymetric/BaseQueryMetric.java @@ -1057,8 +1057,8 @@ public void setLifecycle(Lifecycle lifecycle) { */ @JsonIgnore public boolean isLifecycleFinal() { - return Lifecycle.CLOSED == lifecycle || Lifecycle.CANCELLED == lifecycle || Lifecycle.MAXRESULTS == lifecycle || Lifecycle.NEXTTIMEOUT == lifecycle - || Lifecycle.TIMEOUT == lifecycle || Lifecycle.SHUTDOWN == lifecycle; + return Lifecycle.CLOSED == lifecycle || Lifecycle.CANCELLED == lifecycle || Lifecycle.MAXRESULTS == lifecycle || Lifecycle.MAXWORK == lifecycle + || Lifecycle.NEXTTIMEOUT == lifecycle || Lifecycle.TIMEOUT == lifecycle || Lifecycle.SHUTDOWN == lifecycle; } public String getQueryAuthorizations() { diff --git a/microservices/services/query-metric/api/src/test/java/datawave/microservice/querymetric/BaseQueryMetricTest.java b/microservices/services/query-metric/api/src/test/java/datawave/microservice/querymetric/BaseQueryMetricTest.java new file mode 100644 index 00000000000..94c6e5fdd4a --- /dev/null +++ b/microservices/services/query-metric/api/src/test/java/datawave/microservice/querymetric/BaseQueryMetricTest.java @@ -0,0 +1,42 @@ +package datawave.microservice.querymetric; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.stream.Stream; + +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + +public class BaseQueryMetricTest { + + static Stream finalStates() { + return Stream.of(BaseQueryMetric.Lifecycle.CANCELLED, BaseQueryMetric.Lifecycle.MAXRESULTS, BaseQueryMetric.Lifecycle.MAXWORK, + BaseQueryMetric.Lifecycle.TIMEOUT, BaseQueryMetric.Lifecycle.NEXTTIMEOUT, BaseQueryMetric.Lifecycle.CLOSED); + } + + static Stream otherStates() { + return Stream.of(null, BaseQueryMetric.Lifecycle.NONE, BaseQueryMetric.Lifecycle.DEFINED, BaseQueryMetric.Lifecycle.INITIALIZED, + BaseQueryMetric.Lifecycle.RESULTS); + } + + @ParameterizedTest(name = "{0} should be preserved") + @MethodSource("finalStates") + public void testFinalLifecycle(BaseQueryMetric.Lifecycle lifecycle) { + BaseQueryMetric metric = new QueryMetric(); + metric.setLifecycle(lifecycle); + assertEquals(lifecycle, metric.getLifecycle()); + metric.setLifecycle(BaseQueryMetric.Lifecycle.CLOSED); + assertEquals(lifecycle, metric.getLifecycle()); + } + + @ParameterizedTest(name = "{0} should be over-written with CLOSE") + @MethodSource("otherStates") + public void testNonFinalLifecycles(BaseQueryMetric.Lifecycle lifecycle) { + BaseQueryMetric metric = new QueryMetric(); + metric.setLifecycle(lifecycle); + assertEquals(lifecycle, metric.getLifecycle()); + metric.setLifecycle(BaseQueryMetric.Lifecycle.CLOSED); + assertEquals(BaseQueryMetric.Lifecycle.CLOSED, metric.getLifecycle()); + } + +}