From a604b493ab32467635ec1767b2747bcf8f22cae9 Mon Sep 17 00:00:00 2001 From: Marek Gradzki Date: Wed, 7 Mar 2018 11:02:29 +0100 Subject: Fix handling of RPCs that do not produce a result The output statement of RPC operation is optional. In such cases DefaultDOMRpcResult should be initialized with null result. Change-Id: Ia832e480b3c72607b3636493bc044a9144f247be Signed-off-by: Marek Gradzki --- .../src/main/java/io/fd/honeycomb/rpc/HoneycombDOMRpcService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'infra/rpc/impl/src/main/java/io') diff --git a/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/HoneycombDOMRpcService.java b/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/HoneycombDOMRpcService.java index 68f29f208..01adbd6da 100644 --- a/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/HoneycombDOMRpcService.java +++ b/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/HoneycombDOMRpcService.java @@ -71,8 +71,12 @@ public final class HoneycombDOMRpcService implements DOMRpcService { private ListenableFuture getDOMRpcResult(final ListenableFuture invoke) { return Futures.transform( invoke, - (Function) output -> { - final ContainerNode outputNode = serializer.toNormalizedNodeRpcData(output); + output -> { + // If result is available convert it to BI form. Otherwise pass null as DOMRpcResult expects. + ContainerNode outputNode = null; + if (output != null) { + outputNode = serializer.toNormalizedNodeRpcData(output); + } return new DefaultDOMRpcResult(outputNode); }); } -- cgit 1.2.3-korg