private void sendJsonParseError(JSONException e, HttpServletResponse response) throws IOException { sendError(response, new ResponseItem(HttpServletResponse.SC_BAD_REQUEST, "Invalid JSON - " + e.getMessage())); } }
private Object getErrorJson(ResponseItem responseItem) { Map<String, Object> error = new HashMap<String, Object>(2, 1); error.put("code", responseItem.getErrorCode()); String message = errorTitles.get(responseItem.getErrorCode()); if (message == null) { message = responseItem.getErrorMessage(); } else { if (StringUtils.isNotBlank(responseItem.getErrorMessage())) { message += ": " + responseItem.getErrorMessage(); } } if (StringUtils.isNotBlank(message)) { error.put("message", message); } if (responseItem.getResponse() != null) { error.put("data", responseItem.getResponse()); } return error; }
@Override protected void sendError(HttpServletResponse servletResponse, ResponseItem responseItem) throws IOException { int errorCode = responseItem.getErrorCode(); if (errorCode < 0) { // Map JSON-RPC error codes into HTTP error codes as best we can // TODO: Augment the error message (if missing) with a default switch (errorCode) { case -32700: case -32602: case -32600: // Parse error, invalid params, and invalid request errorCode = HttpServletResponse.SC_BAD_REQUEST; break; case -32601: // Procedure doesn't exist errorCode = HttpServletResponse.SC_NOT_IMPLEMENTED; break; case -32603: default: // Internal server error, or any application-defined error errorCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; break; } } servletResponse.sendError(responseItem.getErrorCode(), responseItem.getErrorMessage()); }
@Test public void testEquals() { ResponseItem responseItem = new ResponseItem( HttpServletResponse.SC_BAD_REQUEST, "message1"); ResponseItem responseItemSame = new ResponseItem( HttpServletResponse.SC_BAD_REQUEST, "message1"); ResponseItem responseItemDifferent = new ResponseItem(HttpServletResponse.SC_FORBIDDEN, "message2"); ResponseItem simpleResponse = new ResponseItem("simple"); ResponseItem simpleResponseSame = new ResponseItem("simple"); ResponseItem simpleResponseDifferent = new ResponseItem("simpleDiffernt"); assertEquals(responseItem.hashCode(), responseItemSame.hashCode()); assertEquals(responseItem, responseItem); assertEquals(responseItem, responseItemSame); assertNotEquals(responseItem.hashCode(), responseItemDifferent.hashCode()); assertFalse(responseItem.equals(responseItemDifferent)); assertNotNull(responseItem); assertNotEquals(responseItem, "A String"); assertEquals(simpleResponse.hashCode(), simpleResponseSame.hashCode()); assertEquals(simpleResponse, simpleResponse); assertEquals(simpleResponse, simpleResponseSame); assertNotSame(simpleResponse.hashCode(), simpleResponseDifferent.hashCode()); assertFalse(simpleResponse.equals(simpleResponseDifferent)); assertNotNull(simpleResponse); assertNotEquals(simpleResponse, "A String"); } }
if (responseItem.getErrorCode() >= 200 && responseItem.getErrorCode() < 400) { PrintWriter writer = servletResponse.getWriter(); Object response = responseItem.getResponse();
@Override protected void sendError(HttpServletResponse servletResponse, ResponseItem responseItem) throws IOException { jsonConverter.append(servletResponse.getWriter(), getErrorJson(responseItem)); servletResponse.setStatus(responseItem.getErrorCode()); }
@Test public void testEquals() { ResponseItem responseItem = new ResponseItem( HttpServletResponse.SC_BAD_REQUEST, "message1"); ResponseItem responseItemSame = new ResponseItem( HttpServletResponse.SC_BAD_REQUEST, "message1"); ResponseItem responseItemDifferent = new ResponseItem(HttpServletResponse.SC_FORBIDDEN, "message2"); ResponseItem simpleResponse = new ResponseItem("simple"); ResponseItem simpleResponseSame = new ResponseItem("simple"); ResponseItem simpleResponseDifferent = new ResponseItem("simpleDiffernt"); assertEquals(responseItem.hashCode(), responseItemSame.hashCode()); assertEquals(responseItem, responseItem); assertEquals(responseItem, responseItemSame); assertNotEquals(responseItem.hashCode(), responseItemDifferent.hashCode()); assertFalse(responseItem.equals(responseItemDifferent)); assertNotNull(responseItem); assertNotEquals(responseItem, "A String"); assertEquals(simpleResponse.hashCode(), simpleResponseSame.hashCode()); assertEquals(simpleResponse, simpleResponse); assertEquals(simpleResponse, simpleResponseSame); assertNotSame(simpleResponse.hashCode(), simpleResponseDifferent.hashCode()); assertFalse(simpleResponse.equals(simpleResponseDifferent)); assertNotNull(simpleResponse); assertNotEquals(simpleResponse, "A String"); } }
if (responseItem.getErrorCode() >= 200 && responseItem.getErrorCode() < 400) { PrintWriter writer = servletResponse.getWriter(); Object response = responseItem.getResponse();
@Override protected void sendError(HttpServletResponse servletResponse, ResponseItem responseItem) throws IOException { int errorCode = responseItem.getErrorCode(); if (errorCode < 0) { // Map JSON-RPC error codes into HTTP error codes as best we can // TODO: Augment the error message (if missing) with a default switch (errorCode) { case -32700: case -32602: case -32600: // Parse error, invalid params, and invalid request errorCode = HttpServletResponse.SC_BAD_REQUEST; break; case -32601: // Procedure doesn't exist errorCode = HttpServletResponse.SC_NOT_IMPLEMENTED; break; case -32603: default: // Internal server error, or any application-defined error errorCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; break; } } servletResponse.sendError(responseItem.getErrorCode(), responseItem.getErrorMessage()); }
@Override protected void sendError(HttpServletResponse servletResponse, ResponseItem responseItem) throws IOException { jsonConverter.append(servletResponse.getWriter(), getErrorJson(responseItem)); servletResponse.setStatus(responseItem.getErrorCode()); }
protected void sendSecurityError(HttpServletResponse servletResponse) throws IOException { sendError(servletResponse, new ResponseItem(HttpServletResponse.SC_UNAUTHORIZED, "The request did not have a proper security token nor oauth message and unauthenticated " + "requests are not allowed")); }
@Test public void testEquals() { ResponseItem responseItem = new ResponseItem( HttpServletResponse.SC_BAD_REQUEST, "message1"); ResponseItem responseItemSame = new ResponseItem( HttpServletResponse.SC_BAD_REQUEST, "message1"); ResponseItem responseItemDifferent = new ResponseItem(HttpServletResponse.SC_FORBIDDEN, "message2"); ResponseItem simpleResponse = new ResponseItem("simple"); ResponseItem simpleResponseSame = new ResponseItem("simple"); ResponseItem simpleResponseDifferent = new ResponseItem("simpleDiffernt"); assertEquals(responseItem.hashCode(), responseItemSame.hashCode()); assertEquals(responseItem, responseItem); assertEquals(responseItem, responseItemSame); assertNotEquals(responseItem.hashCode(), responseItemDifferent.hashCode()); assertFalse(responseItem.equals(responseItemDifferent)); assertNotNull(responseItem); assertNotEquals(responseItem, "A String"); assertEquals(simpleResponse.hashCode(), simpleResponseSame.hashCode()); assertEquals(simpleResponse, simpleResponse); assertEquals(simpleResponse, simpleResponseSame); assertNotSame(simpleResponse.hashCode(), simpleResponseDifferent.hashCode()); assertFalse(simpleResponse.equals(simpleResponseDifferent)); assertNotNull(simpleResponse); assertNotEquals(simpleResponse, "A String"); } }
protected Object getErrorJson(ResponseItem responseItem) { Map<String, Object> error = new HashMap<String, Object>(2, 1); error.put("code", responseItem.getErrorCode()); String message = errorTitles.get(responseItem.getErrorCode()); if (message == null) { message = responseItem.getErrorMessage(); } else { if (StringUtils.isNotBlank(responseItem.getErrorMessage())) { message += ": " + responseItem.getErrorMessage(); } } if (StringUtils.isNotBlank(message)) { error.put("message", message); } if (responseItem.getResponse() != null) { error.put("data", responseItem.getResponse()); } return error; }
if (responseItem.getErrorCode() >= 200 && responseItem.getErrorCode() < 400) { PrintWriter writer = servletResponse.getWriter(); Object response = responseItem.getResponse();
@Override protected void sendError(HttpServletResponse servletResponse, ResponseItem responseItem) throws IOException { String errorMessage = responseItem.getErrorMessage(); int errorCode = responseItem.getErrorCode(); if (errorCode < 0) { // Map JSON-RPC error codes into HTTP error codes as best we can // TODO: Augment the error message (if missing) with a default switch (errorCode) { case -32700: case -32602: case -32600: // Parse error, invalid params, and invalid request errorCode = HttpServletResponse.SC_BAD_REQUEST; break; case -32601: // Procedure doesn't exist errorCode = HttpServletResponse.SC_NOT_IMPLEMENTED; break; case -32603: default: // Internal server error, or any application-defined error errorCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; break; } } servletResponse.sendError(errorCode, errorMessage); }
@Override protected void sendError(HttpServletResponse servletResponse, ResponseItem responseItem) throws IOException { jsonConverter.append(servletResponse.getWriter(), getErrorJson(responseItem)); servletResponse.setStatus(responseItem.getErrorCode()); }
protected void sendSecurityError(HttpServletResponse servletResponse) throws IOException { sendError(servletResponse, new ResponseItem(HttpServletResponse.SC_UNAUTHORIZED, "The request did not have a proper security token nor oauth message and unauthenticated " + "requests are not allowed")); }
protected Object getErrorJson(ResponseItem responseItem) { Map<String, Object> error = new HashMap<String, Object>(2, 1); error.put("code", responseItem.getErrorCode()); String message = errorTitles.get(responseItem.getErrorCode()); if (message == null) { message = responseItem.getErrorMessage(); } else { if (StringUtils.isNotBlank(responseItem.getErrorMessage())) { message += ": " + responseItem.getErrorMessage(); } } if (StringUtils.isNotBlank(message)) { error.put("message", message); } if (responseItem.getResponse() != null) { error.put("data", responseItem.getResponse()); } return error; }
if (responseItem.getErrorCode() >= 200 && responseItem.getErrorCode() < 400) { PrintWriter writer = servletResponse.getWriter(); Object response = responseItem.getResponse();
@Override protected void sendError(HttpServletResponse servletResponse, ResponseItem responseItem) throws IOException { String errorMessage = responseItem.getErrorMessage(); int errorCode = responseItem.getErrorCode(); if (errorCode < 0) { // Map JSON-RPC error codes into HTTP error codes as best we can // TODO: Augment the error message (if missing) with a default switch (errorCode) { case -32700: case -32602: case -32600: // Parse error, invalid params, and invalid request errorCode = HttpServletResponse.SC_BAD_REQUEST; break; case -32601: // Procedure doesn't exist errorCode = HttpServletResponse.SC_NOT_IMPLEMENTED; break; case -32603: default: // Internal server error, or any application-defined error errorCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; break; } } servletResponse.sendError(errorCode, errorMessage); }