Skip to content

Commit

Permalink
bugfix: shut down executor threads due to PREPARE_SHUTDOWN event, ins…
Browse files Browse the repository at this point in the history
…tead of SERVER_SHUTDOWN,

thus avoiding exceptions when events run during server shutdown
  • Loading branch information
lprimak committed Aug 22, 2024
1 parent 133d648 commit 583230d
Showing 1 changed file with 12 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) [2017-2022] Payara Foundation and/or its affiliates. All rights reserved.
* Copyright (c) [2017-2024] Payara Foundation and/or its affiliates. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
Expand Down Expand Up @@ -137,8 +137,10 @@ public void event(Event event) {
if (null == threadPoolExecutor) {
initialiseThreadPools();
}
} else if (event.is(EventTypes.SERVER_SHUTDOWN)) {
} else if (event.is(EventTypes.PREPARE_SHUTDOWN)) {
terminateThreadPools();
} else if (event.is(EventTypes.SERVER_SHUTDOWN)) {
awaitTerminationOfThreadPools();
}
}

Expand All @@ -149,7 +151,13 @@ private void terminateThreadPools() {
}
threadPoolExecutor.shutdown();
scheduledThreadPoolExecutor.shutdown();
}

private void awaitTerminationOfThreadPools() {
if (threadPoolExecutor == null) {
// we didn't initialize yet
return;
}
// Wait until the schedulers actually terminate
try {
threadPoolExecutor.awaitTermination(5, TimeUnit.SECONDS);
Expand Down Expand Up @@ -189,9 +197,6 @@ private void initialiseThreadPools() {
Logger.getLogger(PayaraExecutorService.class.getName()).log(SEVERE, "Uncaught exception in Payara Scheduled Executor thread ", thrwbl));
return t;
});
scheduledThreadPoolExecutor.setRemoveOnCancelPolicy(true);


} else {
int threadPoolExecutorQueueSize = Integer.valueOf(payaraExecutorServiceConfiguration.getThreadPoolExecutorQueueSize());

Expand Down Expand Up @@ -224,9 +229,9 @@ public void uncaughtException(Thread thread, Throwable thrwbl) {
});
return t;
});
scheduledThreadPoolExecutor.setRemoveOnCancelPolicy(true);
}

scheduledThreadPoolExecutor.setRemoveOnCancelPolicy(true);
scheduledThreadPoolExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
}

public <T> Future<T> submit(Callable<T> task) {
Expand Down

0 comments on commit 583230d

Please sign in to comment.