protected void sendExceptions(String message) { for(Map.Entry<Integer, ResponseCallback> callbackEntry: requests.entrySet()) { ResponseCallback callback = callbackEntry.getValue(); Integer id = callbackEntry.getKey(); RpcResponse.Builder responseBuilder = RpcResponse.newBuilder() .setErrorMessage(message) .setId(id); callback.run(responseBuilder.build()); } }
public RpcResponse getResponse() { RpcResponse.Builder builder = RpcResponse.newBuilder(); builder.setId(seqId); if (getCause().getMessage() == null) { builder.setErrorMessage(getCause().getClass().getName()); } else { builder.setErrorMessage(getCause().getMessage()); } builder.setErrorTrace(getStackTraceString(getCause())); builder.setErrorClass(originExceptionClass); return builder.build(); }
public RpcResponse getResponse() { RpcResponse.Builder builder = RpcResponse.newBuilder(); builder.setId(seqId); if (getCause().getMessage() == null) { builder.setErrorMessage(getCause().getClass().getName()); } else { builder.setErrorMessage(getCause().getMessage()); } builder.setErrorTrace(getStackTraceString(getCause())); builder.setErrorClass(originExceptionClass); return builder.build(); }
builder.setErrorMessage(controller.errorText()); ctx.writeAndFlush(builder.build());
@Override protected void channelRead0(final ChannelHandlerContext ctx, final RpcRequest request) throws Exception { String methodName = request.getMethodName(); final MethodDescriptor methodDescriptor = service.getDescriptorForType().findMethodByName(methodName); if (methodDescriptor == null) { exceptionCaught(ctx, new RemoteCallException(request.getId(), new NoSuchMethodException(methodName))); return; } try { Message paramProto = null; if (request.hasRequestMessage()) { paramProto = service.getRequestPrototype(methodDescriptor).newBuilderForType() .mergeFrom(request.getRequestMessage()).build(); } RpcController controller = new NettyRpcController(); Message returnValue = service.callBlockingMethod(methodDescriptor, controller, paramProto); RpcProtos.RpcResponse.Builder builder = RpcProtos.RpcResponse.newBuilder().setId(request.getId()); if (returnValue != null) { builder.setResponseMessage(returnValue.toByteString()); } if (controller.failed()) { builder.setErrorMessage(controller.errorText()); } ctx.writeAndFlush(builder.build()); } catch (RemoteCallException e) { exceptionCaught(ctx, e); } catch (Throwable throwable) { exceptionCaught(ctx, new RemoteCallException(request.getId(), methodDescriptor, throwable)); } }
@Override protected void channelRead0(final ChannelHandlerContext ctx, final RpcRequest request) throws Exception { String methodName = request.getMethodName(); final MethodDescriptor methodDescriptor = service.getDescriptorForType().findMethodByName(methodName); if (methodDescriptor == null) { exceptionCaught(ctx, new RemoteCallException(request.getId(), new NoSuchMethodException(methodName))); return; } try { Message paramProto = null; if (request.hasRequestMessage()) { paramProto = service.getRequestPrototype(methodDescriptor).newBuilderForType() .mergeFrom(request.getRequestMessage()).build(); } RpcController controller = new NettyRpcController(); Message returnValue = service.callBlockingMethod(methodDescriptor, controller, paramProto); RpcProtos.RpcResponse.Builder builder = RpcProtos.RpcResponse.newBuilder().setId(request.getId()); if (returnValue != null) { builder.setResponseMessage(returnValue.toByteString()); } if (controller.failed()) { builder.setErrorMessage(controller.errorText()); } ctx.writeAndFlush(builder.build()); } catch (RemoteCallException e) { exceptionCaught(ctx, e); } catch (Throwable throwable) { exceptionCaught(ctx, new RemoteCallException(request.getId(), methodDescriptor, throwable)); } }
public RpcResponse getResponse() { RpcResponse.Builder builder = RpcResponse.newBuilder(); builder.setId(seqId); if (getCause().getMessage() == null) { builder.setErrorMessage(getCause().getClass().getName()); } else { builder.setErrorMessage(getCause().getMessage()); } builder.setErrorTrace(getStackTraceString(getCause())); builder.setErrorClass(originExceptionClass); return builder.build(); }
@Override protected void handleException(int requestId, ResponseCallback callback, String message) { RpcResponse.Builder responseBuilder = RpcResponse.newBuilder() .setErrorMessage(message + "") .setId(requestId); callback.run(responseBuilder.build()); } }
public void run(Message returnValue) { RpcResponse.Builder builder = RpcResponse.newBuilder().setId(request.getId()); if (returnValue != null) { builder.setResponseMessage(returnValue.toByteString()); } if (controller.failed()) { builder.setErrorMessage(controller.errorText()); } ctx.writeAndFlush(builder.build()); } };
@Override protected void handleException(int requestId, ResponseCallback callback, String message) { RpcResponse.Builder responseBuilder = RpcResponse.newBuilder() .setErrorMessage(message + "") .setId(requestId); callback.run(responseBuilder.build()); } }
public void run(Message returnValue) { RpcResponse.Builder builder = RpcResponse.newBuilder().setId(request.getId()); if (returnValue != null) { builder.setResponseMessage(returnValue.toByteString()); } if (controller.failed()) { builder.setErrorMessage(controller.errorText()); } ctx.writeAndFlush(builder.build()); } };
public void run(Message returnValue) { RpcResponse.Builder builder = RpcResponse.newBuilder().setId(request.getId()); if (returnValue != null) { builder.setResponseMessage(returnValue.toByteString()); } if (controller.failed()) { builder.setErrorMessage(controller.errorText()); } ctx.writeAndFlush(builder.build()); } };