@Override public <I, O, E> io.micronaut.http.HttpResponse<O> exchange(io.micronaut.http.HttpRequest<I> request, Argument<O> bodyType, Argument<E> errorType) { Flowable<io.micronaut.http.HttpResponse<O>> publisher = DefaultHttpClient.this.exchange(request, bodyType, errorType); return publisher.doOnNext((res) -> { Optional<ByteBuf> byteBuf = res.getBody(ByteBuf.class); byteBuf.ifPresent(bb -> { if (bb.refCnt() > 0) { ReferenceCountUtil.safeRelease(bb); } }); if (res instanceof FullNettyClientHttpResponse) { ((FullNettyClientHttpResponse) res).onComplete(); } }).blockingFirst(); } };
@Override public <I, O, E> io.micronaut.http.HttpResponse<O> exchange(io.micronaut.http.HttpRequest<I> request, Argument<O> bodyType, Argument<E> errorType) { Flowable<io.micronaut.http.HttpResponse<O>> publisher = DefaultHttpClient.this.exchange(request, bodyType, errorType); return publisher.doOnNext((res) -> { Optional<ByteBuf> byteBuf = res.getBody(ByteBuf.class); byteBuf.ifPresent(bb -> { if (bb.refCnt() > 0) { ReferenceCountUtil.safeRelease(bb); } }); if (res instanceof FullNettyClientHttpResponse) { ((FullNettyClientHttpResponse) res).onComplete(); } }).blockingFirst(); } };
@Override public <I, O, E> io.micronaut.http.HttpResponse<O> exchange(io.micronaut.http.HttpRequest<I> request, Argument<O> bodyType, Argument<E> errorType) { Flowable<io.micronaut.http.HttpResponse<O>> publisher = DefaultHttpClient.this.exchange(request, bodyType, errorType); return publisher.doOnNext((res) -> { Optional<ByteBuf> byteBuf = res.getBody(ByteBuf.class); byteBuf.ifPresent(bb -> { if (bb.refCnt() > 0) { ReferenceCountUtil.safeRelease(bb); } }); if (res instanceof FullNettyClientHttpResponse) { ((FullNettyClientHttpResponse) res).onComplete(); } }).blockingFirst(); } };