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();
         }
     }
 
+
 }

Reply via email to