This is an automated email from the ASF dual-hosted git repository.

albumenj 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 e528bca7e5 fix GenericFilter get generic value (#10456)
e528bca7e5 is described below

commit e528bca7e533ecbdce6022a9e90e0469480a925f
Author: liufeiyu1002 <[email protected]>
AuthorDate: Sun Aug 14 21:12:00 2022 +0800

    fix GenericFilter get generic value (#10456)
---
 .../main/java/org/apache/dubbo/rpc/filter/GenericFilter.java | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/GenericFilter.java
 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/GenericFilter.java
index a09e285e6c..75dcd5c1bc 100644
--- 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/GenericFilter.java
+++ 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/GenericFilter.java
@@ -97,7 +97,7 @@ public class GenericFilter implements Filter, 
Filter.Listener, ScopeModelAware {
                 String generic = inv.getAttachment(GENERIC_KEY);
 
                 if (StringUtils.isBlank(generic)) {
-                    generic = 
RpcContext.getClientAttachment().getAttachment(GENERIC_KEY);
+                    generic = getGenericValueFromRpcContext();
                 }
 
                 if (StringUtils.isEmpty(generic)
@@ -205,6 +205,14 @@ public class GenericFilter implements Filter, 
Filter.Listener, ScopeModelAware {
         }).toArray();
     }
 
+    private String getGenericValueFromRpcContext(){
+        String generic = 
RpcContext.getServerAttachment().getAttachment(GENERIC_KEY);
+        if (StringUtils.isBlank(generic)){
+            generic = 
RpcContext.getClientAttachment().getAttachment(GENERIC_KEY);
+        }
+        return generic;
+    }
+
     @Override
     public void onResponse(Result appResponse, Invoker<?> invoker, Invocation 
inv) {
         if ((inv.getMethodName().equals($INVOKE) || 
inv.getMethodName().equals($INVOKE_ASYNC))
@@ -214,7 +222,7 @@ public class GenericFilter implements Filter, 
Filter.Listener, ScopeModelAware {
 
             String generic = inv.getAttachment(GENERIC_KEY);
             if (StringUtils.isBlank(generic)) {
-                generic = 
RpcContext.getClientAttachment().getAttachment(GENERIC_KEY);
+                generic = getGenericValueFromRpcContext();
             }
 
             if (appResponse.hasException()) {

Reply via email to