Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
touzizhuo03
Dubbo
提交
f4dfc6e4
D
Dubbo
项目概览
touzizhuo03
/
Dubbo
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Dubbo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f4dfc6e4
编写于
1月 03, 2018
作者:
K
ken.lj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert modification of core dubbo RPC protocol
上级
20fff013
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
13 addition
and
52 deletion
+13
-52
dubbo-rpc/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/DecodeableRpcInvocation.java
...aba/dubbo/rpc/protocol/dubbo/DecodeableRpcInvocation.java
+12
-33
dubbo-rpc/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboCodec.java
...java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboCodec.java
+1
-19
未找到文件。
dubbo-rpc/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/DecodeableRpcInvocation.java
浏览文件 @
f4dfc6e4
...
...
@@ -95,40 +95,19 @@ public class DecodeableRpcInvocation extends RpcInvocation implements Codec, Dec
try
{
Object
[]
args
;
Class
<?>[]
pts
;
int
argNum
=
in
.
readInt
();
if
(
argNum
>=
0
)
{
if
(
argNum
==
0
)
{
pts
=
DubboCodec
.
EMPTY_CLASS_ARRAY
;
args
=
DubboCodec
.
EMPTY_OBJECT_ARRAY
;
}
else
{
args
=
new
Object
[
argNum
];
pts
=
new
Class
[
argNum
];
for
(
int
i
=
0
;
i
<
args
.
length
;
i
++)
{
try
{
args
[
i
]
=
in
.
readObject
();
pts
[
i
]
=
args
[
i
].
getClass
();
}
catch
(
Exception
e
)
{
if
(
log
.
isWarnEnabled
())
{
log
.
warn
(
"Decode argument failed: "
+
e
.
getMessage
(),
e
);
}
}
}
}
String
desc
=
in
.
readUTF
();
if
(
desc
.
length
()
==
0
)
{
pts
=
DubboCodec
.
EMPTY_CLASS_ARRAY
;
args
=
DubboCodec
.
EMPTY_OBJECT_ARRAY
;
}
else
{
String
desc
=
in
.
readUTF
();
if
(
desc
.
length
()
==
0
)
{
pts
=
DubboCodec
.
EMPTY_CLASS_ARRAY
;
args
=
DubboCodec
.
EMPTY_OBJECT_ARRAY
;
}
else
{
pts
=
ReflectUtils
.
desc2classArray
(
desc
);
args
=
new
Object
[
pts
.
length
];
for
(
int
i
=
0
;
i
<
args
.
length
;
i
++)
{
try
{
args
[
i
]
=
in
.
readObject
(
pts
[
i
]);
}
catch
(
Exception
e
)
{
if
(
log
.
isWarnEnabled
())
{
log
.
warn
(
"Decode argument failed: "
+
e
.
getMessage
(),
e
);
}
pts
=
ReflectUtils
.
desc2classArray
(
desc
);
args
=
new
Object
[
pts
.
length
];
for
(
int
i
=
0
;
i
<
args
.
length
;
i
++)
{
try
{
args
[
i
]
=
in
.
readObject
(
pts
[
i
]);
}
catch
(
Exception
e
)
{
if
(
log
.
isWarnEnabled
())
{
log
.
warn
(
"Decode argument failed: "
+
e
.
getMessage
(),
e
);
}
}
}
...
...
dubbo-rpc/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboCodec.java
浏览文件 @
f4dfc6e4
...
...
@@ -25,7 +25,6 @@ import com.alibaba.dubbo.common.logger.Logger;
import
com.alibaba.dubbo.common.logger.LoggerFactory
;
import
com.alibaba.dubbo.common.serialize.ObjectInput
;
import
com.alibaba.dubbo.common.serialize.ObjectOutput
;
import
com.alibaba.dubbo.common.serialize.OptimizedSerialization
;
import
com.alibaba.dubbo.common.serialize.Serialization
;
import
com.alibaba.dubbo.common.utils.ReflectUtils
;
import
com.alibaba.dubbo.common.utils.StringUtils
;
...
...
@@ -169,14 +168,7 @@ public class DubboCodec extends ExchangeCodec implements Codec2 {
out
.
writeUTF
(
inv
.
getAttachment
(
Constants
.
VERSION_KEY
));
out
.
writeUTF
(
inv
.
getMethodName
());
if
(
getSerialization
(
channel
)
instanceof
OptimizedSerialization
&&
!
containComplexArguments
(
inv
))
{
out
.
writeInt
(
inv
.
getParameterTypes
().
length
);
}
else
{
out
.
writeInt
(-
1
);
out
.
writeUTF
(
ReflectUtils
.
getDesc
(
inv
.
getParameterTypes
()));
}
out
.
writeUTF
(
ReflectUtils
.
getDesc
(
inv
.
getParameterTypes
()));
Object
[]
args
=
inv
.
getArguments
();
if
(
args
!=
null
)
for
(
int
i
=
0
;
i
<
args
.
length
;
i
++)
{
...
...
@@ -203,14 +195,4 @@ public class DubboCodec extends ExchangeCodec implements Codec2 {
out
.
writeObject
(
th
);
}
}
// workaround for the target method matching of kryo & fst
private
boolean
containComplexArguments
(
RpcInvocation
invocation
)
{
for
(
int
i
=
0
;
i
<
invocation
.
getParameterTypes
().
length
;
i
++)
{
if
(
invocation
.
getArguments
()[
i
]
==
null
||
invocation
.
getParameterTypes
()[
i
]
!=
invocation
.
getArguments
()[
i
].
getClass
())
{
return
true
;
}
}
return
false
;
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录