From dbcaccbccc12021b972ac99284db63865d653d09 Mon Sep 17 00:00:00 2001 From: Marco Pfattner Date: Wed, 26 Feb 2025 09:48:45 +0100 Subject: [PATCH] Invoke call.close only if call was not cancelled --- stub/src/main/java/io/grpc/kotlin/ServerCalls.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stub/src/main/java/io/grpc/kotlin/ServerCalls.kt b/stub/src/main/java/io/grpc/kotlin/ServerCalls.kt index d2b532b4..cada7bc9 100644 --- a/stub/src/main/java/io/grpc/kotlin/ServerCalls.kt +++ b/stub/src/main/java/io/grpc/kotlin/ServerCalls.kt @@ -265,7 +265,9 @@ object ServerCalls { else -> Status.fromThrowable(failure).withCause(failure) } val trailers = failure?.let { Status.trailersFromThrowable(it) } ?: GrpcMetadata() - mutex.withLock { call.close(closeStatus, trailers) } + mutex.withLock { + if (!call.isCancelled) call.close(closeStatus, trailers) + } } return object: ServerCall.Listener() {