diff --git a/sdk/src/main/java/io/dapr/client/DaprClientHttp.java b/sdk/src/main/java/io/dapr/client/DaprClientHttp.java index 5d130dae11..5e644520c6 100644 --- a/sdk/src/main/java/io/dapr/client/DaprClientHttp.java +++ b/sdk/src/main/java/io/dapr/client/DaprClientHttp.java @@ -190,18 +190,20 @@ public Mono> invokeMethod(InvokeServiceRequest invokeServiceRequ byte[] serializedRequestBody = objectSerializer.serialize(request); Mono response = this.client.invokeApi(httMethod, path, httpExtension.getQueryString(), serializedRequestBody, metadata, context); - return response.flatMap(r -> { - try { - T object = objectSerializer.deserialize(r.getBody(), type); - if (object == null) { - return Mono.empty(); - } + return response.flatMap(r -> getMono(type, r)).map(r -> new Response<>(context, r)); + } catch (Exception ex) { + return DaprException.wrapMono(ex); + } + } - return Mono.just(object); - } catch (Exception ex) { - return DaprException.wrapMono(ex); - } - }).map(r -> new Response<>(context, r)); + private Mono getMono(TypeRef type, DaprHttp.Response r) { + try { + T object = objectSerializer.deserialize(r.getBody(), type); + if (object == null) { + return Mono.empty(); + } + + return Mono.just(object); } catch (Exception ex) { return DaprException.wrapMono(ex); } @@ -258,18 +260,7 @@ public Mono> invokeBinding(InvokeBindingRequest request, TypeRef String httpMethod = DaprHttp.HttpMethods.POST.name(); Mono response = this.client.invokeApi( httpMethod, url.toString(), null, payload, null, context); - return response.flatMap(r -> { - try { - T object = objectSerializer.deserialize(r.getBody(), type); - if (object == null) { - return Mono.empty(); - } - - return Mono.just(object); - } catch (Exception ex) { - return DaprException.wrapMono(ex); - } - }).map(r -> new Response<>(context, r)); + return response.flatMap(r -> getMono(type, r)).map(r -> new Response<>(context, r)); } catch (Exception ex) { return DaprException.wrapMono(ex); }