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

Reply via email to