LENS-1211 : Fix GenericExceptionMapper to return 405 only when there is no matching resource
Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/0190ef56 Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/0190ef56 Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/0190ef56 Branch: refs/heads/current-release-line Commit: 0190ef5676f160678c8e66c601f8168cf9a42938 Parents: b3a9cb9 Author: Rajat Khandelwal <[email protected]> Authored: Tue Jul 19 15:53:38 2016 +0530 Committer: Amareshwari Sriramadasu <[email protected]> Committed: Tue Jul 19 15:53:38 2016 +0530 ---------------------------------------------------------------------- .../org/apache/lens/server/error/GenericExceptionMapper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/0190ef56/lens-server/src/main/java/org/apache/lens/server/error/GenericExceptionMapper.java ---------------------------------------------------------------------- diff --git a/lens-server/src/main/java/org/apache/lens/server/error/GenericExceptionMapper.java b/lens-server/src/main/java/org/apache/lens/server/error/GenericExceptionMapper.java index 9aa74ed..d761b6d 100644 --- a/lens-server/src/main/java/org/apache/lens/server/error/GenericExceptionMapper.java +++ b/lens-server/src/main/java/org/apache/lens/server/error/GenericExceptionMapper.java @@ -62,11 +62,13 @@ public class GenericExceptionMapper implements ExceptionMapper<Exception> { status = le.getLensAPIResult().getHttpStatusCode(); } else if (exception instanceof WebApplicationException) { status = Response.Status.fromStatusCode(((WebApplicationException) exception).getResponse().getStatus()); + } else if (extendedUriInfo.getMatchedResourceMethod() == null) { + status = Response.Status.METHOD_NOT_ALLOWED; } else { status = Response.Status.INTERNAL_SERVER_ERROR; } if (extendedUriInfo.getMatchedResourceMethod() == null) { - return Response.status(Response.Status.METHOD_NOT_ALLOWED).build(); + return Response.status(status).entity("No matching resource method").build(); } if (extendedUriInfo.getMatchedResourceMethod().getInvocable().getRawResponseType() == LensAPIResult.class) { if (le != null) {
