diff --git a/core/src/main/java/io/grpc/internal/ClientCallImpl.java b/core/src/main/java/io/grpc/internal/ClientCallImpl.java index 76df05fcf1..6d9eb20007 100644 --- a/core/src/main/java/io/grpc/internal/ClientCallImpl.java +++ b/core/src/main/java/io/grpc/internal/ClientCallImpl.java @@ -249,7 +249,9 @@ final class ClientCallImpl extends ClientCall context.addListener(this, directExecutor()); if (effectiveDeadline != null // If the context has the effective deadline, we don't need to schedule an extra task. - && context.getDeadline() != effectiveDeadline) { + && context.getDeadline() != effectiveDeadline + // If the channel has been terminated, we don't need to schedule an extra task. + && deadlineCancellationExecutor != null) { deadlineCancellationFuture = startDeadlineTimer(effectiveDeadline); } if (cancelListenersShouldBeRemoved) {