Skip to content

Commit 5474252

Browse files
committed
Consistently apply TaskDecorator to ManagedExecutorService as well
Closes gh-32455
1 parent 658194c commit 5474252

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2023 the original author or authors.
2+
* Copyright 2002-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -134,11 +134,6 @@ public final Executor getConcurrentExecutor() {
134134
* execution callback (which may be a wrapper around the user-supplied task).
135135
* <p>The primary use case is to set some execution context around the task's
136136
* invocation, or to provide some monitoring/statistics for task execution.
137-
* <p><b>NOTE:</b> Exception handling in {@code TaskDecorator} implementations
138-
* is limited to plain {@code Runnable} execution via {@code execute} calls.
139-
* In case of {@code #submit} calls, the exposed {@code Runnable} will be a
140-
* {@code FutureTask} which does not propagate any exceptions; you might
141-
* have to cast it and call {@code Future#get} to evaluate exceptions.
142137
* @since 4.3
143138
*/
144139
public final void setTaskDecorator(TaskDecorator taskDecorator) {
@@ -179,11 +174,10 @@ public <T> ListenableFuture<T> submitListenable(Callable<T> task) {
179174
}
180175

181176

182-
private TaskExecutorAdapter getAdaptedExecutor(Executor concurrentExecutor) {
183-
if (managedExecutorServiceClass != null && managedExecutorServiceClass.isInstance(concurrentExecutor)) {
184-
return new ManagedTaskExecutorAdapter(concurrentExecutor);
185-
}
186-
TaskExecutorAdapter adapter = new TaskExecutorAdapter(concurrentExecutor);
177+
private TaskExecutorAdapter getAdaptedExecutor(Executor originalExecutor) {
178+
TaskExecutorAdapter adapter =
179+
(managedExecutorServiceClass != null && managedExecutorServiceClass.isInstance(originalExecutor) ?
180+
new ManagedTaskExecutorAdapter(originalExecutor) : new TaskExecutorAdapter(originalExecutor));
187181
if (this.taskDecorator != null) {
188182
adapter.setTaskDecorator(this.taskDecorator);
189183
}

0 commit comments

Comments
 (0)