duoan / mini-rpc

Spring + Netty + Protostuff + ZooKeeper 实现了一个轻量级 RPC 框架,使用 Spring 提供依赖注入与参数配置,使用 Netty 实现 NIO 方式的数据传输,使用 Protostuff 实现对象序列化,使用 ZooKeeper 实现服务注册与发现。使用该框架,可将服务部署到分布式环境中的任意节点上,客户端通过远程接口来调用服务端的具体实现,让服务端与客户端的开发完全分离,为实现大规模分布式应用提供了基础支持
224 stars 143 forks source link

bug #9

Open cmgyqjj opened 1 year ago

cmgyqjj commented 1 year ago

The channelRead0 method in RpcHandler returnserror=null by default in its response. However, in RpcProxy, response.isError() is used to determine whether an exception should be thrown. The implementation of response.isError() is shown below:

public boolean isError(){
        return error == null;
    }

This can cause errors even when the operation is executed normally.

这里是中文翻译

在RpcHandler的channelRead0方法中,response默认返回error=null 但是在RpcProxy中,使用response.isError()来是否执行异常,这将会导致正常执行也出错