diff --git a/runtime/src/main/java/org/capnproto/RpcState.java b/runtime/src/main/java/org/capnproto/RpcState.java index 453be6e..da61be9 100644 --- a/runtime/src/main/java/org/capnproto/RpcState.java +++ b/runtime/src/main/java/org/capnproto/RpcState.java @@ -991,17 +991,16 @@ final class RpcState { @Override public AnyPointer.Builder getResults() { - if (response != null) { - return response.getResultsBuilder(); - } + if (response == null) { - if (redirectResults || isDisconnected()) { - response = new LocallyRedirectedRpcResponse(); - } - else { - var message = connection.newOutgoingMessage(1024); - returnMessage = message.getBody().initAs(RpcProtocol.Message.factory).initReturn(); - response = new RpcServerResponseImpl(message, returnMessage.getResults()); + if (redirectResults || isDisconnected()) { + response = new LocallyRedirectedRpcResponse(); + } + else { + var message = connection.newOutgoingMessage(1024); + returnMessage = message.getBody().initAs(RpcProtocol.Message.factory).initReturn(); + response = new RpcServerResponseImpl(message, returnMessage.getResults()); + } } return response.getResultsBuilder();