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

liujun 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 e583187aac Fix triple injvm deep copy issue (#13597)
e583187aac is described below

commit e583187aac96760860af5d67c965d3391ff2ff4d
Author: namelessssssssssss 
<[email protected]>
AuthorDate: Thu Jan 4 20:01:38 2024 +0800

    Fix triple injvm deep copy issue (#13597)
---
 .../apache/dubbo/rpc/protocol/injvm/DefaultParamDeepCopyUtil.java    | 5 +++++
 1 file changed, 5 insertions(+)

diff --git 
a/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/DefaultParamDeepCopyUtil.java
 
b/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/DefaultParamDeepCopyUtil.java
index 4f5243e655..fc365668aa 100644
--- 
a/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/DefaultParamDeepCopyUtil.java
+++ 
b/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/DefaultParamDeepCopyUtil.java
@@ -22,6 +22,7 @@ import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.dubbo.common.serialize.ObjectInput;
 import org.apache.dubbo.common.serialize.ObjectOutput;
 import org.apache.dubbo.common.serialize.Serialization;
+import org.apache.dubbo.common.utils.ProtobufUtils;
 import org.apache.dubbo.remoting.utils.UrlUtils;
 
 import java.io.ByteArrayInputStream;
@@ -40,6 +41,10 @@ public class DefaultParamDeepCopyUtil implements 
ParamDeepCopyUtil {
     @Override
     @SuppressWarnings({"unchecked"})
     public <T> T copy(URL url, Object src, Class<T> targetClass, Type type) {
+        // TODO: maybe we have better way to do this
+        if (src != null && ProtobufUtils.isProtobufClass(src.getClass())) {
+            return (T) src;
+        }
         Serialization serialization = url.getOrDefaultFrameworkModel()
                 .getExtensionLoader(Serialization.class)
                 .getExtension(UrlUtils.serializationOrDefault(url));

Reply via email to