Skip to content

Commit

Permalink
Fixed exception handling for ReactiveClient and THeader(NettyRpcClient)
Browse files Browse the repository at this point in the history
Summary:
- Current Netty 4 THeader client(NettyRpcClient), returns ClientResponsePayload even in case of exceptions and it is thrown in AbstractThriftClient.
 - RSocketRpcClient throws exception in SPI implementation itself. This is in-consistent to THeader approach.
 - Fixed this by moving exception throwing to generated ReactiveClient. Removed throw from RSocketRpcClient

Differential Revision: D26867352

fbshipit-source-id: ce7ac33b1e58ba5761101d9f6278f42bce3d6e7b
  • Loading branch information
prakashgayasen authored and facebook-github-bot committed Mar 9, 2021
1 parent 4e5bb5a commit 78f7bd9
Show file tree
Hide file tree
Showing 16 changed files with 57 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,8 @@ public class {{service:javaCapitalName}}ReactiveClient {{#service:extends}} exte
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
{{#function:oneway?}}.singleRequestNoResponse(_crp, rpcOptions).thenReturn(ResponseWrapper.create(null, java.util.Collections.emptyMap())){{/function:oneway?}}{{!
}}{{^function:oneway?}}.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());}){{/function:oneway?}};
});
}

Expand Down Expand Up @@ -336,9 +337,10 @@ public class {{service:javaCapitalName}}ReactiveClient {{#service:extends}} exte
java.util.Collections.emptyMap());

return _rpc
.singleRequestStreamingResponse(_crp, rpcOptions){{#function:returnType}}{{^type:streamHasFirstResponse?}}
.filter((_p) -> ((com.facebook.swift.transport.model.StreamResponse)_p.getData()).isSetData())
.map(_p -> ResponseWrapper.create((({{#function:returnType}}{{> StreamResponseGeneric}}{{/function:returnType}})_p.getData()).getData(), _p.getHeaders())){{/type:streamHasFirstResponse?}}{{/function:returnType}};
.singleRequestStreamingResponse(_crp, rpcOptions)
.doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());}){{#function:returnType}}{{^type:streamHasFirstResponse?}}
.filter((_p) -> ((com.facebook.swift.transport.model.StreamResponse)_p.getData()).isSetData()){{/type:streamHasFirstResponse?}}{{/function:returnType}}
.map(_p -> ResponseWrapper.create((({{#function:returnType}}{{> StreamResponseGeneric}}{{/function:returnType}})_p.getData()){{#function:returnType}}{{^type:streamHasFirstResponse?}}.getData(){{/type:streamHasFirstResponse?}}{{/function:returnType}}, _p.getHeaders()));
});
}

Expand Down Expand Up @@ -472,6 +474,7 @@ public class {{service:javaCapitalName}}ReactiveClient {{#service:extends}} exte

return _rpc
.streamingRequestStreamingResponse(_sink, rpcOptions)
.doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());})
.limitRequest(2){{#function:returnType}}{{^type:sinkHasFirstResponse?}}
.filter((_p) -> ((com.facebook.swift.transport.model.StreamResponse)_p.getData()).isSetData()){{/type:sinkHasFirstResponse?}}{{/function:returnType}}
.map(_p -> ResponseWrapper.create((({{#function:returnType}}{{> SinkResponseGeneric}}{{/function:returnType}})_p.getData()){{#function:returnType}}{{^type:sinkHasFirstResponse?}}.getData(){{/type:sinkHasFirstResponse?}}{{/function:returnType}}, _p.getHeaders()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -141,7 +141,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -153,7 +153,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -219,7 +219,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -285,7 +285,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -359,7 +359,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -433,7 +433,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestNoResponse(_crp, rpcOptions).thenReturn(ResponseWrapper.create(null, java.util.Collections.emptyMap()));
});
}

Expand Down Expand Up @@ -489,7 +489,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -163,7 +163,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -156,7 +156,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -221,7 +221,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -295,7 +295,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -361,7 +361,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -427,7 +427,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -492,7 +492,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -566,7 +566,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestNoResponse(_crp, rpcOptions).thenReturn(ResponseWrapper.create(null, java.util.Collections.emptyMap()));
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -209,7 +209,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -266,7 +266,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -323,7 +323,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -181,7 +181,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -187,7 +187,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -261,7 +261,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -334,7 +334,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down Expand Up @@ -423,7 +423,7 @@ public reactor.core.publisher.Mono<com.facebook.swift.transport.client.ResponseW
java.util.Collections.emptyMap());

return _rpc
.singleRequestSingleResponse(_crp, rpcOptions);
.singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
});
}

Expand Down
Loading

0 comments on commit 78f7bd9

Please sign in to comment.