Martin Mucha has uploaded a new change for review. Change subject: restapi: fixed logging error. ......................................................................
restapi: fixed logging error. removed exception cover-up and logging to std. Change-Id: I2d23a647c1ceef2d4d248694415d2578c76047e5 Bug-Url: https://bugzilla.redhat.com/1104184 Signed-off-by: Martin Mucha <mmu...@redhat.com> --- M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/BackendApplication.java A backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/MappingExceptionMapper.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java A backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/MappingException.java 4 files changed, 43 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/58/28658/1 diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/BackendApplication.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/BackendApplication.java index 2963f60..40105e1 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/BackendApplication.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/BackendApplication.java @@ -63,6 +63,7 @@ import org.ovirt.engine.api.restapi.resource.validation.JaxbMarshallExceptionMapper; import org.ovirt.engine.api.restapi.resource.validation.JsonExceptionMapper; import org.ovirt.engine.api.restapi.resource.validation.MalformedIdExceptionMapper; +import org.ovirt.engine.api.restapi.resource.validation.MappingExceptionMapper; import org.ovirt.engine.api.restapi.resource.validation.ValidatorLocator; import org.ovirt.engine.api.restapi.resource.validation.XmlMessageBodyReader; import org.ovirt.engine.api.restapi.security.auth.SessionProcessor; @@ -169,6 +170,7 @@ singletons.add(new JaxbMarshallExceptionMapper()); singletons.add(new JsonExceptionMapper()); singletons.add(new InvalidValueExceptionMapper()); + singletons.add(new MappingExceptionMapper()); } private void addResource(final BackendResource resource) { diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/MappingExceptionMapper.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/MappingExceptionMapper.java new file mode 100644 index 0000000..572ccd6 --- /dev/null +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/validation/MappingExceptionMapper.java @@ -0,0 +1,28 @@ +package org.ovirt.engine.api.restapi.resource.validation; + +import javax.ws.rs.core.Response; +import javax.ws.rs.ext.ExceptionMapper; +import javax.ws.rs.ext.Provider; + +import org.jboss.resteasy.annotations.interception.ServerInterceptor; +import org.ovirt.engine.api.model.Fault; +import org.ovirt.engine.api.restapi.utils.MappingException; +import org.ovirt.engine.core.utils.log.Log; +import org.ovirt.engine.core.utils.log.LogFactory; + +@Provider +@ServerInterceptor +public class MappingExceptionMapper implements ExceptionMapper<MappingException> { + + private static final Log LOGGER = LogFactory.getLog(MappingExceptionMapper.class); + + @Override + public Response toResponse(MappingException exception) { + LOGGER.error(exception); + + final Fault fault = new Fault(); + fault.setReason("Operation Failed"); + + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(fault).build(); + } +} diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java index 14f7acd..edb4d48 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java @@ -8,6 +8,7 @@ import org.ovirt.engine.api.common.util.PackageExplorer; import org.ovirt.engine.api.restapi.utils.MalformedIdException; +import org.ovirt.engine.api.restapi.utils.MappingException; /** * Discovers and manages type mappers. @@ -111,19 +112,18 @@ @Override public Object map(Object from, Object template) { - Object ret = null; try { // REVISIT support non-static mapping methods also - ret = method.invoke(null, from, template); + return to.cast(method.invoke(null, from, template)); } catch (InvocationTargetException ite) { if (ite.getTargetException() instanceof MalformedIdException) { throw (MalformedIdException) ite.getTargetException(); + } else { + throw new MappingException(ite); } - } catch (Exception e) { - // REVISIT logging, fallback null-mapping - e.printStackTrace(); + } catch (IllegalAccessException e) { + throw new MappingException(e); } - return to.cast(ret); } public String toString() { diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/MappingException.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/MappingException.java new file mode 100644 index 0000000..f29ef7a --- /dev/null +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/MappingException.java @@ -0,0 +1,7 @@ +package org.ovirt.engine.api.restapi.utils; + +public class MappingException extends RuntimeException { + public MappingException(Throwable cause) { + super(cause); + } +} -- To view, visit http://gerrit.ovirt.org/28658 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2d23a647c1ceef2d4d248694415d2578c76047e5 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Mucha <mmu...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches