diff --git a/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionalOperatorImpl.java b/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionalOperatorImpl.java index e40057c22d51..d812235dd9dc 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionalOperatorImpl.java +++ b/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionalOperatorImpl.java @@ -112,10 +112,11 @@ private Mono rollbackOnException(ReactiveTransaction status, Throwable ex) * @param ex the throwable to try to unwrap */ private Throwable unwrapIfResourceCleanupFailure(Throwable ex) { - if (ex instanceof RuntimeException && - ex.getCause() != null && - ex.getMessage().startsWith("Async resource cleanup failed")) { - return ex.getCause(); + if (ex instanceof RuntimeException && ex.getCause() != null) { + String msg = ex.getMessage(); + if (msg != null && msg.startsWith("Async resource cleanup failed")) { + return ex.getCause(); + } } return ex; }