DRILL-2764: Add generic exception mapper for REST API error details
Project: http://git-wip-us.apache.org/repos/asf/drill/repo Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/153baebd Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/153baebd Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/153baebd Branch: refs/heads/master Commit: 153baebda5532e875e0f958a2dc01e3ac69f26cf Parents: da17f28 Author: AdamPD <[email protected]> Authored: Mon Apr 13 17:16:31 2015 +1000 Committer: vkorukanti <[email protected]> Committed: Fri Jun 26 11:46:47 2015 -0700 ---------------------------------------------------------------------- .../drill/exec/server/rest/DrillRestServer.java | 1 + .../server/rest/GenericExceptionMapper.java | 41 ++++++++++++++++++++ 2 files changed, 42 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/drill/blob/153baebd/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRestServer.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRestServer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRestServer.java index 147e4a5..8c14587 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRestServer.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRestServer.java @@ -56,6 +56,7 @@ public class DrillRestServer extends ResourceConfig { register(JsonParseExceptionMapper.class); register(JsonMappingExceptionMapper.class); + register(GenericExceptionMapper.class); JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider(); provider.setMapper(workManager.getContext().getConfig().getMapper()); http://git-wip-us.apache.org/repos/asf/drill/blob/153baebd/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/GenericExceptionMapper.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/GenericExceptionMapper.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/GenericExceptionMapper.java new file mode 100644 index 0000000..cc00e9b --- /dev/null +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/GenericExceptionMapper.java @@ -0,0 +1,41 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.drill.exec.server.rest; + +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.ext.ExceptionMapper; +import javax.ws.rs.ext.Provider; + +public class GenericExceptionMapper implements ExceptionMapper<Throwable> { + @Override + public Response toResponse(Throwable throwable) { + return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()) + .entity(new GenericErrorMessage(throwable.getMessage())) + .type(MediaType.APPLICATION_JSON_TYPE) + .build(); + } + + public static class GenericErrorMessage { + public final String errorMessage; + + public GenericErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + } +}
