This is an automated email from the ASF dual-hosted git repository.
earthchen pushed a commit to branch 3.1
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.1 by this push:
new 7cccc4f193 opt some tri code (#11079)
7cccc4f193 is described below
commit 7cccc4f193f36b4ff8fa2e4b77671e65dba32b7a
Author: earthchen <[email protected]>
AuthorDate: Wed Dec 7 20:11:15 2022 +0800
opt some tri code (#11079)
* opt some code
* remove unused if
* fix npe
---
.../protocol/tri/stream/TripleServerStream.java | 41 ++++++++++------------
1 file changed, 19 insertions(+), 22 deletions(-)
diff --git
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/stream/TripleServerStream.java
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/stream/TripleServerStream.java
index f289bb1706..33a17c6283 100644
---
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/stream/TripleServerStream.java
+++
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/stream/TripleServerStream.java
@@ -371,14 +371,6 @@ public class TripleServerStream extends AbstractStream
implements ServerStream {
}
}
- try {
- final TriDecoder.Listener listener = new
ServerDecoderListener();
- deframer = new TriDecoder(deCompressor, listener);
- } catch (Throwable t) {
- responseErr(TriRpcStatus.INTERNAL.withCause(t));
- return;
- }
-
Map<String, Object> requestMetadata = headersToMap(headers);
boolean hasStub = pathResolver.hasNativeStub(path);
if (hasStub) {
@@ -390,10 +382,9 @@ public class TripleServerStream extends AbstractStream
implements ServerStream {
frameworkModel, acceptEncoding, serviceName,
originalMethodName, filters,
executor);
}
+ // must before onHeader
+ deframer = new TriDecoder(deCompressor, new
ServerDecoderListener(listener));
listener.onHeader(requestMetadata);
- if (listener == null) {
- deframer.close();
- }
}
@@ -427,21 +418,27 @@ public class TripleServerStream extends AbstractStream
implements ServerStream {
.withDescription("Canceled by client ,errorCode=" +
errorCode));
});
}
+ }
- private class ServerDecoderListener implements TriDecoder.Listener {
- @Override
- public void onRawMessage(byte[] data) {
- listener.onMessage(data);
- }
+ private static class ServerDecoderListener implements TriDecoder.Listener {
- @Override
- public void close() {
- if (listener != null) {
- listener.onComplete();
- }
- }
+ private final ServerStream.Listener listener;
+
+ public ServerDecoderListener(ServerStream.Listener listener) {
+ this.listener = listener;
+ }
+
+ @Override
+ public void onRawMessage(byte[] data) {
+ listener.onMessage(data);
+ }
+
+ @Override
+ public void close() {
+ listener.onComplete();
}
}
+
}