sofa-rpc hessian2 generic对自定义的Java Throwable类型反序列化成了Generic Object的问题
rickey17 opened this issue · comments
rickey17 commented
Describe the bug
sofa-rpc hessian2 generic对自定义的Java Throwable类型,会反序列化成了Generic Object,然后被当作正常处理
自定义的Java Throwable类型比如:
public class MockError extends RuntimeException {
public MockError() {
super();
}
public MockError(String message) {
super(message);
}
public MockError(String message, Throwable cause) {
super(message, cause);
}
public MockError(Throwable cause) {
super(cause);
}
这种情况对网关/代理等没有scheme的组件特别不优化,容易把异常当作成功进行处理。
Expected behavior
1、如果客户端和服务端都能load对应的自定义的Java Throwable类型,那么需要反序列化成对应的类型
1、如果客户端和服务端有类型兼容问题(服务端存在自定义的Java Throwable类型,但是客户端不存在该类型或者有兼容性问题),那么需要反序列化成通用的Java Exception类型
Environment
- SOFARPC version: 5.9.0-SNAPSHOT(以及之前的版本)
- JVM version (e.g.
java -version
):1.8