From 2731586bb98f7725bc28eae58c320d33f7e7e55b Mon Sep 17 00:00:00 2001 From: Alessandro Arcangeli Date: Sat, 16 Oct 2021 13:30:47 +0200 Subject: [PATCH] fix "questionId is already in use" error --- runtime-rpc/src/main/java/org/capnproto/RpcState.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/runtime-rpc/src/main/java/org/capnproto/RpcState.java b/runtime-rpc/src/main/java/org/capnproto/RpcState.java index df85489..dcf2904 100644 --- a/runtime-rpc/src/main/java/org/capnproto/RpcState.java +++ b/runtime-rpc/src/main/java/org/capnproto/RpcState.java @@ -758,10 +758,12 @@ final class RpcState { if (ctx != null) { ctx.requestCancel(); } - else { - var questionId = finish.getQuestionId(); - answers.erase(questionId); - } + + // Remove question id + // this is a different then c++ implementation, but it is required as java's promises doesn't support + // all features of kj's promises + var questionId = finish.getQuestionId(); + answers.erase(questionId); if (exportsToRelease != null) { this.releaseExports(exportsToRelease);