From 6fff5914bc0eeaca75e46e32061d86e76d8f62fb Mon Sep 17 00:00:00 2001 From: Paul Ferraro Date: Fri, 2 Aug 2024 12:29:20 -0400 Subject: [PATCH] Deprecate OperationListener.timeout(), as this is no longer serves any purpose. --- .../ProcessStateListenerService.java | 4 --- .../org/jboss/as/server/BootstrapImpl.java | 2 +- .../jboss/as/server/jmx/RunningStateJmx.java | 4 --- .../ServerDomainProcessShutdownHandler.java | 2 +- .../operations/ServerShutdownHandler.java | 2 +- .../operations/ServerSuspendHandler.java | 2 +- .../as/server/suspend/OperationListener.java | 7 +++-- .../as/server/suspend/SuspendController.java | 28 ++----------------- 8 files changed, 12 insertions(+), 39 deletions(-) diff --git a/core-management/core-management-subsystem/src/main/java/org/wildfly/extension/core/management/ProcessStateListenerService.java b/core-management/core-management-subsystem/src/main/java/org/wildfly/extension/core/management/ProcessStateListenerService.java index 19a447e9636..0c20374b6e6 100644 --- a/core-management/core-management-subsystem/src/main/java/org/wildfly/extension/core/management/ProcessStateListenerService.java +++ b/core-management/core-management-subsystem/src/main/java/org/wildfly/extension/core/management/ProcessStateListenerService.java @@ -122,10 +122,6 @@ public void cancelled() { break; } } - - @Override - public void timeout() { - } }; } else { operationListener = null; diff --git a/server/src/main/java/org/jboss/as/server/BootstrapImpl.java b/server/src/main/java/org/jboss/as/server/BootstrapImpl.java index 24da0c7fc47..2ef9a134d4e 100644 --- a/server/src/main/java/org/jboss/as/server/BootstrapImpl.java +++ b/server/src/main/java/org/jboss/as/server/BootstrapImpl.java @@ -289,7 +289,7 @@ private void suspend(ServiceContainer sc) { CompletableFuture suspend = suspendController.suspend(ServerSuspendController.Context.SHUTDOWN).toCompletableFuture(); if (timeoutSeconds >= 0) { // If necessary we'll wait 500 ms longer for it in the off chance a gc or something delays things - suspend = suspend.orTimeout(TimeUnit.MILLISECONDS.convert(timeoutSeconds, TimeUnit.SECONDS) + 500, TimeUnit.MILLISECONDS); + suspend.completeOnTimeout(null, TimeUnit.MILLISECONDS.convert(timeoutSeconds, TimeUnit.SECONDS) + 500, TimeUnit.MILLISECONDS); } suspend.join(); } diff --git a/server/src/main/java/org/jboss/as/server/jmx/RunningStateJmx.java b/server/src/main/java/org/jboss/as/server/jmx/RunningStateJmx.java index 13c4a523351..71df732d89c 100644 --- a/server/src/main/java/org/jboss/as/server/jmx/RunningStateJmx.java +++ b/server/src/main/java/org/jboss/as/server/jmx/RunningStateJmx.java @@ -178,10 +178,6 @@ public void cancelled() { mbean.setRunningState(mbean.getRunningState(), RunningState.ADMIN_ONLY); } } - - @Override - public void timeout() { - } }); } else { mbean.setRunningState(null, RunningState.STARTING); diff --git a/server/src/main/java/org/jboss/as/server/operations/ServerDomainProcessShutdownHandler.java b/server/src/main/java/org/jboss/as/server/operations/ServerDomainProcessShutdownHandler.java index 94a766c224c..f402773fa95 100644 --- a/server/src/main/java/org/jboss/as/server/operations/ServerDomainProcessShutdownHandler.java +++ b/server/src/main/java/org/jboss/as/server/operations/ServerDomainProcessShutdownHandler.java @@ -70,7 +70,7 @@ public void handleResult(OperationContext.ResultAction resultAction, OperationCo //to stop new requests being accepted as it is shutting down CompletionStage suspend = ServerDomainProcessShutdownHandler.this.suspendController.suspend(ServerSuspendController.Context.SHUTDOWN); - SUSPEND_STAGE.set((seconds >= 0) ? suspend.toCompletableFuture().orTimeout(seconds, TimeUnit.SECONDS) : suspend); + SUSPEND_STAGE.set((seconds >= 0) ? suspend.toCompletableFuture().completeOnTimeout(null, seconds, TimeUnit.SECONDS) : suspend); } } }); diff --git a/server/src/main/java/org/jboss/as/server/operations/ServerShutdownHandler.java b/server/src/main/java/org/jboss/as/server/operations/ServerShutdownHandler.java index 4e4a0f9d324..ad573b990a4 100644 --- a/server/src/main/java/org/jboss/as/server/operations/ServerShutdownHandler.java +++ b/server/src/main/java/org/jboss/as/server/operations/ServerShutdownHandler.java @@ -150,7 +150,7 @@ public void handleResult(OperationContext.ResultAction resultAction, OperationCo final ServerSuspendController suspendController = ServerShutdownHandler.this.suspendController; CompletableFuture suspend = suspendController.suspend(ServerSuspendController.Context.SHUTDOWN).toCompletableFuture(); if (seconds >= 0) { - suspend = suspend.orTimeout(seconds, TimeUnit.SECONDS); + suspend.completeOnTimeout(null, seconds, TimeUnit.SECONDS); } try { suspend.join(); diff --git a/server/src/main/java/org/jboss/as/server/operations/ServerSuspendHandler.java b/server/src/main/java/org/jboss/as/server/operations/ServerSuspendHandler.java index 0b9c03ed7e4..63625d7c91d 100644 --- a/server/src/main/java/org/jboss/as/server/operations/ServerSuspendHandler.java +++ b/server/src/main/java/org/jboss/as/server/operations/ServerSuspendHandler.java @@ -61,7 +61,7 @@ public void execute(final OperationContext context, ModelNode operation) throws final ServerSuspendController suspendController = ServerSuspendHandler.this.suspendController; CompletableFuture suspend = suspendController.suspend(ServerSuspendController.Context.RUNNING).toCompletableFuture(); if (seconds >= 0) { - suspend = suspend.orTimeout(seconds, TimeUnit.SECONDS); + suspend.completeOnTimeout(null, seconds, TimeUnit.SECONDS); } try { suspend.join(); diff --git a/server/src/main/java/org/jboss/as/server/suspend/OperationListener.java b/server/src/main/java/org/jboss/as/server/suspend/OperationListener.java index 51368ab6b0d..ceb78e2d901 100644 --- a/server/src/main/java/org/jboss/as/server/suspend/OperationListener.java +++ b/server/src/main/java/org/jboss/as/server/suspend/OperationListener.java @@ -31,7 +31,10 @@ public interface OperationListener { /** * Invoked when a suspend operation times out. + * @deprecated This event is no longer emitted. */ - void timeout(); - + @Deprecated(forRemoval = true) + default void timeout() { + // Do nothing + } } diff --git a/server/src/main/java/org/jboss/as/server/suspend/SuspendController.java b/server/src/main/java/org/jboss/as/server/suspend/SuspendController.java index 157e884e7f7..a0dda101fa6 100644 --- a/server/src/main/java/org/jboss/as/server/suspend/SuspendController.java +++ b/server/src/main/java/org/jboss/as/server/suspend/SuspendController.java @@ -12,11 +12,9 @@ import java.util.ListIterator; import java.util.Map; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; import java.util.concurrent.CompletionStage; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.BiConsumer; import java.util.function.BiFunction; @@ -90,27 +88,7 @@ public CompletionStage suspend(ServerSuspendContext context) { for (OperationListener listener: this.listeners) { listener.suspendStarted(); } - // Handle TimeoutException by triggering listener - BiFunction timeoutHandler = (ignore, exception) -> { - if (exception != null) { - if (exception instanceof TimeoutException) { - for (OperationListener listener: this.listeners) { - listener.timeout(); - } - return null; - } - // Don't re-wrap CompletionException/CancellationException - throw (exception instanceof RuntimeException) ? (RuntimeException) exception : new CompletionException(exception); - } - return null; - }; - CompletableFuture result = new CompletableFuture<>() { - @Override - public CompletableFuture orTimeout(long timeout, TimeUnit unit) { - // Redirect timeout exceptions to ServerSuspendListener - return super.orTimeout(timeout, unit).handle(timeoutHandler); - } - }; + CompletableFuture result = new CompletableFuture<>(); // Prepare activity groups in priority order, i.e. first -> last this.phaseStage(this.activityGroups, SuspendableActivity::prepare, context, Functions.discardingBiConsumer()).whenComplete((ignored, prepareException) -> { if (prepareException != null) { @@ -235,7 +213,7 @@ public void resume() { } /** - * @deprecated Superseded by {@link #suspend(ServerSuspendContext)} using {@link CompletableFuture#orTimeout(Object, long, TimeUnit)}. + * @deprecated Superseded by {@link #suspend(ServerSuspendContext)} using {@link CompletableFuture#completeOnTimeout(Object, long, TimeUnit)}. */ @Deprecated(forRemoval = true) public void suspend(long timeoutMillis) { @@ -248,7 +226,7 @@ public void suspend(long timeoutMillis) { } CompletableFuture suspend = this.suspend(Context.RUNNING).toCompletableFuture(); if (timeoutMillis >= 0) { - suspend.orTimeout(timeoutMillis, TimeUnit.MILLISECONDS); + suspend.completeOnTimeout(null, timeoutMillis, TimeUnit.MILLISECONDS); } suspend.join(); }