For IntelliJ IDEA,
Android Studio or Eclipse



private Response buildExceptionResponse(long requestId, Exception e) { DefaultResponse response = new DefaultResponse(); response.setRequestId(requestId); response.setException(e); return response; }
private Response buildErrorResponse(Request request, Exception motanException) { DefaultResponse rs = new DefaultResponse(); rs.setException(motanException); rs.setRequestId(request.getRequestId()); return rs; }
public static Response convert(YarResponse yarResponse) { DefaultResponse response = new DefaultResponse(); response.setRequestId(yarResponse.getId()); response.setValue(yarResponse.getRet()); if (StringUtils.isNotBlank(yarResponse.getError())) { response.setException(new MotanBizException(yarResponse.getError())); } return response; }
private void rejectMessage(ChannelHandlerContext ctx, NettyMessage msg) { if (msg.isRequest()) { DefaultResponse response = new DefaultResponse(); response.setRequestId(msg.getRequestId()); response.setException(new MotanServiceException("process thread pool is full, reject by server: " + ctx.channel().localAddress(), MotanErrorMsgConstant.SERVICE_REJECT)); sendResponse(ctx, response); LoggerUtil.error("process thread pool is full, reject, active={} poolSize={} corePoolSize={} maxPoolSize={} taskCount={} requestId={}", threadPoolExecutor.getActiveCount(), threadPoolExecutor.getPoolSize(), threadPoolExecutor.getCorePoolSize(), threadPoolExecutor.getMaximumPoolSize(), threadPoolExecutor.getTaskCount(), msg.getRequestId()); } }
private void processRequest(ChannelHandlerContext ctx, Request request, long processStartTime) { Object result; try{ result = messageHandler.handle(serverChannel, request); } catch (Exception e){ LoggerUtil.error("NettyChannelHandler processRequest fail!request:" + MotanFrameworkUtil.toString(request), e); result = MotanFrameworkUtil.buildErrorResponse(request.getRequestId(), new MotanServiceException("process request fail. errmsg:" + e.getMessage())); } DefaultResponse response = null; if (!(result instanceof DefaultResponse)) { response = new DefaultResponse(result); } else { response = (DefaultResponse) result; } response.setRequestId(request.getRequestId()); response.setProcessTime(System.currentTimeMillis() - processStartTime); if (ctx.getChannel().isConnected()) { ctx.getChannel().write(response); } }
private void processRequest(final ChannelHandlerContext ctx, Request request) { request.setAttachment(URLParamType.host.getName(), NetUtils.getHostName(ctx.channel().remoteAddress())); final long processStartTime = System.currentTimeMillis(); try { RpcContext.init(request); Object result; try { result = messageHandler.handle(channel, request); } catch (Exception e) { LoggerUtil.error("NettyChannelHandler processRequest fail! request:" + MotanFrameworkUtil.toString(request), e); result = MotanFrameworkUtil.buildErrorResponse(request.getRequestId(), new MotanServiceException("process request fail. errmsg:" + e.getMessage())); } DefaultResponse response; if (result instanceof DefaultResponse) { response = (DefaultResponse) result; } else { response = new DefaultResponse(result); } response.setRequestId(request.getRequestId()); response.setProcessTime(System.currentTimeMillis() - processStartTime); sendResponse(ctx, response); } finally { RpcContext.destroy(); } }
/** * if RejectedExecutionException happen, send 503 exception to client */ @Override public void handleUpstream(ChannelHandlerContext context, ChannelEvent e) throws Exception { try { super.handleUpstream(context, e); } catch (RejectedExecutionException rejectException) { if (e instanceof MessageEvent) { if (((MessageEvent) e).getMessage() instanceof Request) { Request request = (Request) ((MessageEvent) e).getMessage(); DefaultResponse response = new DefaultResponse(); response.setRequestId(request.getRequestId()); response.setException(new MotanServiceException("process thread pool is full, reject", MotanErrorMsgConstant.SERVICE_REJECT)); e.getChannel().write(response); LoggerUtil .debug("process thread pool is full, reject, active={} poolSize={} corePoolSize={} maxPoolSize={} taskCount={} requestId={}", threadPoolExecutor.getActiveCount(), threadPoolExecutor.getPoolSize(), threadPoolExecutor.getCorePoolSize(), threadPoolExecutor.getMaximumPoolSize(), threadPoolExecutor.getTaskCount(), request.getRequestId()); } } } }
private Object decodeResponse(CodedInputStream input, byte dataType, long requestId, Serialization serialization) throws IOException, ClassNotFoundException { long processTime = input.readInt64(); DefaultResponse response = new DefaultResponse(); response.setRequestId(requestId); response.setProcessTime(processTime); if (dataType == MotanConstants.FLAG_RESPONSE_VOID) { return response; } String className = input.readString(); Class<?> clz = ReflectUtil.forName(className); Object result = serialization.deserialize(input.readByteArray(), clz); if (dataType == MotanConstants.FLAG_RESPONSE) { response.setValue(result); } else if (dataType == MotanConstants.FLAG_RESPONSE_EXCEPTION) { response.setException((Exception) result); } else { throw new MotanFrameworkException("decode error: response dataType not support " + dataType, MotanErrorMsgConstant.FRAMEWORK_DECODE_ERROR); } response.setRequestId(requestId); return response; }
private Object decodeResponse(byte[] body, byte dataType, long requestId, Serialization serialization) throws IOException, ClassNotFoundException { ByteArrayInputStream inputStream = new ByteArrayInputStream(body); ObjectInput input = createInput(inputStream); long processTime = input.readLong(); DefaultResponse response = new DefaultResponse(); response.setRequestId(requestId); response.setProcessTime(processTime); if (dataType == MotanConstants.FLAG_RESPONSE_VOID) { return response; } String className = input.readUTF(); Class<?> clz = ReflectUtil.forName(className); Object result = deserialize((byte[]) input.readObject(), clz, serialization); if (dataType == MotanConstants.FLAG_RESPONSE) { response.setValue(result); } else if (dataType == MotanConstants.FLAG_RESPONSE_EXCEPTION) { response.setException((Exception) result); } else { throw new MotanFrameworkException("decode error: response dataType not support " + dataType, MotanErrorMsgConstant.FRAMEWORK_DECODE_ERROR); } response.setRequestId(requestId); input.close(); return response; }
} catch (RejectedExecutionException rejectException) { DefaultResponse response = new DefaultResponse(); response.setRequestId(request.getRequestId()); response.setException(new MotanServiceException("process thread pool is full, reject", MotanErrorMsgConstant.SERVICE_REJECT));
response.setRequestId(requestId); response.setProcessTime(processTime); response.setRequestId(requestId);
private static Response buildExceptionResponse(long requestId, Exception e) { DefaultResponse response = new DefaultResponse(); response.setRequestId(requestId); response.setException(e); return response; }
private Response buildExceptionResponse(long requestId, Exception e) { DefaultResponse response = new DefaultResponse(); response.setRequestId(requestId); response.setException(e); return response; } }
private Response buildExceptionResponse(long requestId, Exception e) { DefaultResponse response = new DefaultResponse(); response.setRequestId(requestId); response.setException(e); return response; }
private Response buildExceptionResponse(long requestId, Exception e) { DefaultResponse response = new DefaultResponse(); response.setRequestId(requestId); response.setException(e); return response; }