In ProtobufRpcEngine the client side exceptions are wrapped in RpcClientException. The RpcClientException is used to create RemoteException which is set as cause in the thrown ServiceException. However WritableRpcEngine throws the client encountered exception as is. This difference in behavior causes, many tests to fail in the existing unit tests, which expect the client invoker() to thrown the exception as is. This jira makes the ProtobufRpcEngine behavior consistent with that of WritableRpcEngine.