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));