reta commented on a change in pull request #542: CXF-8022: Thread hangs using
Reactor Flux when Exception is Thrown
URL: https://github.com/apache/cxf/pull/542#discussion_r276878394
##########
File path:
rt/rs/extensions/reactor/src/main/java/org/apache/cxf/jaxrs/reactor/client/ReactorInvokerImpl.java
##########
@@ -201,13 +202,15 @@
@Override
public <T> Flux<T> flux(String name, Entity<?> entity, Class<T>
responseType) {
Future<Response> futureResponse = webClient.async().method(name,
entity);
- return Flux.fromIterable(toIterable(futureResponse, responseType));
+ return Flux.fromStream(() ->
+ StreamSupport.stream(toIterable(futureResponse,
responseType).spliterator(), false));
}
@Override
public <T> Flux<T> flux(String name, Class<T> responseType) {
Future<Response> futureResponse = webClient.async().method(name);
- return Flux.fromIterable(toIterable(futureResponse, responseType));
+ return Flux.fromStream(() ->
Review comment:
So when the `toIterable` fails (fe empty response, or alike), it does thrown
the exception from `getFlux` method, which is unexpected. Instead, the
exception should be propagated using `onError` callback, following the reactive
stream.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services