diff --git a/common/src/main/java/io/netty/util/concurrent/DefaultPromise.java b/common/src/main/java/io/netty/util/concurrent/DefaultPromise.java index 792546a82f..3a3940b793 100644 --- a/common/src/main/java/io/netty/util/concurrent/DefaultPromise.java +++ b/common/src/main/java/io/netty/util/concurrent/DefaultPromise.java @@ -16,6 +16,7 @@ package io.netty.util.concurrent; import io.netty.util.Signal; +import io.netty.util.internal.EmptyArrays; import io.netty.util.internal.PlatformDependent; import io.netty.util.internal.StringUtil; import io.netty.util.internal.logging.InternalLogger; @@ -41,6 +42,12 @@ public class DefaultPromise extends AbstractFuture implements Promise { }; private static final Signal SUCCESS = Signal.valueOf(DefaultPromise.class.getName() + ".SUCCESS"); private static final Signal UNCANCELLABLE = Signal.valueOf(DefaultPromise.class.getName() + ".UNCANCELLABLE"); + private static final CauseHolder CANCELLATION_CAUSE_HOLDER = new CauseHolder(new CancellationException()); + + static { + CANCELLATION_CAUSE_HOLDER.cause.setStackTrace(EmptyArrays.EMPTY_STACK_TRACE); + } + private final EventExecutor executor; private volatile Object result; @@ -424,7 +431,7 @@ public class DefaultPromise extends AbstractFuture implements Promise { return false; } - this.result = new CauseHolder(new CancellationException()); + this.result = CANCELLATION_CAUSE_HOLDER; if (hasWaiters()) { notifyAll(); }