diff --git a/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionContextManager.java b/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionContextManager.java index 7dc42c5c15..e3df7dbdb9 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionContextManager.java +++ b/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionContextManager.java @@ -62,7 +62,7 @@ public abstract class TransactionContextManager { return; } } - sink.error(new NoTransactionException("No transaction in context")); + sink.error(new NoTransactionInContextException()); }); } @@ -111,4 +111,22 @@ public abstract class TransactionContextManager { }; } + + /** + * Stackless variant of {@link NoTransactionException} for reactive flows. + */ + @SuppressWarnings("serial") + private static class NoTransactionInContextException extends NoTransactionException { + + public NoTransactionInContextException() { + super("No transaction in context"); + } + + @Override + public synchronized Throwable fillInStackTrace() { + // stackless exception + return this; + } + } + }