You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by ic...@apache.org on 2024/05/31 08:27:05 UTC
(dubbo) branch 3.2 updated: fix triple reactor call throws "Too many response for unary method" exception (#14261)
This is an automated email from the ASF dual-hosted git repository.
icodening pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.2 by this push:
new 95f9984571 fix triple reactor call throws "Too many response for unary method" exception (#14261)
95f9984571 is described below
commit 95f99845713ac4ab98201c4e83052411a23736f6
Author: caoyanan666 <55...@users.noreply.github.com>
AuthorDate: Fri May 31 16:26:59 2024 +0800
fix triple reactor call throws "Too many response for unary method" exception (#14261)
Co-authored-by: caoyanan <ca...@growingio.com>
---
.../java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java
index 24218a1b08..8cf1ef3ed8 100644
--- a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java
+++ b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java
@@ -48,13 +48,11 @@ public final class ReactorServerCalls {
public static <T, R> void oneToOne(T request, StreamObserver<R> responseObserver, Function<Mono<T>, Mono<R>> func) {
try {
func.apply(Mono.just(request))
+ .switchIfEmpty(Mono.error(TriRpcStatus.NOT_FOUND.asException()))
.subscribe(
- res -> {
- responseObserver.onNext(res);
- responseObserver.onCompleted();
- },
+ responseObserver::onNext,
throwable -> doOnResponseHasException(throwable, responseObserver),
- () -> doOnResponseHasException(TriRpcStatus.NOT_FOUND.asException(), responseObserver));
+ responseObserver::onCompleted);
} catch (Throwable throwable) {
doOnResponseHasException(throwable, responseObserver);
}