Skip to content

Commit fdbd65a

Browse files
committed
Only apply awaitTerminationPeriod if awaitTermination is set
See gh-38528
1 parent 6744cc2 commit fdbd65a

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/task/TaskExecutorConfigurations.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.springframework.beans.factory.ObjectProvider;
2222
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2323
import org.springframework.boot.autoconfigure.condition.ConditionalOnThreading;
24-
import org.springframework.boot.autoconfigure.task.TaskExecutionProperties.Shutdown;
2524
import org.springframework.boot.autoconfigure.thread.Threading;
2625
import org.springframework.boot.task.SimpleAsyncTaskExecutorBuilder;
2726
import org.springframework.boot.task.SimpleAsyncTaskExecutorCustomizer;
@@ -92,7 +91,7 @@ TaskExecutorBuilder taskExecutorBuilder(TaskExecutionProperties properties,
9291
builder = builder.maxPoolSize(pool.getMaxSize());
9392
builder = builder.allowCoreThreadTimeOut(pool.isAllowCoreThreadTimeout());
9493
builder = builder.keepAlive(pool.getKeepAlive());
95-
Shutdown shutdown = properties.getShutdown();
94+
TaskExecutionProperties.Shutdown shutdown = properties.getShutdown();
9695
builder = builder.awaitTermination(shutdown.isAwaitTermination());
9796
builder = builder.awaitTerminationPeriod(shutdown.getAwaitTerminationPeriod());
9897
builder = builder.threadNamePrefix(properties.getThreadNamePrefix());
@@ -120,7 +119,7 @@ ThreadPoolTaskExecutorBuilder threadPoolTaskExecutorBuilder(TaskExecutionPropert
120119
builder = builder.maxPoolSize(pool.getMaxSize());
121120
builder = builder.allowCoreThreadTimeOut(pool.isAllowCoreThreadTimeout());
122121
builder = builder.keepAlive(pool.getKeepAlive());
123-
Shutdown shutdown = properties.getShutdown();
122+
TaskExecutionProperties.Shutdown shutdown = properties.getShutdown();
124123
builder = builder.awaitTermination(shutdown.isAwaitTermination());
125124
builder = builder.awaitTerminationPeriod(shutdown.getAwaitTerminationPeriod());
126125
builder = builder.threadNamePrefix(properties.getThreadNamePrefix());
@@ -177,8 +176,10 @@ private SimpleAsyncTaskExecutorBuilder builder() {
177176
builder = builder.taskDecorator(this.taskDecorator.getIfUnique());
178177
TaskExecutionProperties.Simple simple = this.properties.getSimple();
179178
builder = builder.concurrencyLimit(simple.getConcurrencyLimit());
180-
Shutdown shutdown = this.properties.getShutdown();
181-
builder = builder.taskTerminationTimeout(shutdown.getAwaitTerminationPeriod());
179+
TaskExecutionProperties.Shutdown shutdown = this.properties.getShutdown();
180+
if (shutdown.isAwaitTermination()) {
181+
builder = builder.taskTerminationTimeout(shutdown.getAwaitTerminationPeriod());
182+
}
182183
return builder;
183184
}
184185

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/task/TaskExecutionAutoConfigurationTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ void simpleAsyncTaskExecutorBuilderShouldReadProperties() {
113113
this.contextRunner
114114
.withPropertyValues("spring.task.execution.thread-name-prefix=mytest-",
115115
"spring.task.execution.simple.concurrency-limit=1",
116+
"spring.task.execution.shutdown.await-termination=true",
116117
"spring.task.execution.shutdown.await-termination-period=30s")
117118
.run(assertSimpleAsyncTaskExecutor((taskExecutor) -> {
118119
assertThat(taskExecutor.getConcurrencyLimit()).isEqualTo(1);

0 commit comments

Comments
 (0)