From 8ec27438e70a67828b0957525de3c7c01cd8a2f5 Mon Sep 17 00:00:00 2001 From: xumengqi <2663479778@qq.com> Date: Sun, 14 Apr 2024 22:51:43 +0800 Subject: [PATCH] Fix transaction definition setTimeout error message since zero is valid This commit rephrases the `DefaultTransactionDefinition#setTimeout` exception message to better reflect the fact that 0 is a valid input value. Even though this often leads to a transaction immediately timing out after opening, there is one notable case where this has another meaningful effect: in Jakarta transactions (`UserTransaction`), when passing 0 "the transaction service restores the default value". Closes gh-32635 --- .../transaction/support/DefaultTransactionDefinition.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionDefinition.java b/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionDefinition.java index c0588f4f6d..8b50539241 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionDefinition.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionDefinition.java @@ -227,7 +227,7 @@ public class DefaultTransactionDefinition implements TransactionDefinition, Seri */ public final void setTimeout(int timeout) { if (timeout < TIMEOUT_DEFAULT) { - throw new IllegalArgumentException("Timeout must be a positive integer or TIMEOUT_DEFAULT"); + throw new IllegalArgumentException("Timeout must be a non-negative integer or TIMEOUT_DEFAULT"); } this.timeout = timeout; }