You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2014/06/19 12:05:57 UTC

svn commit: r1603805 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/bval/BeanValidationAppendixInterceptor.java

Author: andygumbrecht
Date: Thu Jun 19 10:05:57 2014
New Revision: 1603805

URL: http://svn.apache.org/r1603805
Log:
Do not continue on an unexpected error

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/bval/BeanValidationAppendixInterceptor.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/bval/BeanValidationAppendixInterceptor.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/bval/BeanValidationAppendixInterceptor.java?rev=1603805&r1=1603804&r2=1603805&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/bval/BeanValidationAppendixInterceptor.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/bval/BeanValidationAppendixInterceptor.java Thu Jun 19 10:05:57 2014
@@ -18,7 +18,6 @@
 package org.apache.openejb.bval;
 
 import org.apache.openejb.core.ThreadContext;
-import org.apache.openejb.core.ivm.naming.NamingException;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
@@ -26,6 +25,7 @@ import org.apache.openejb.util.Logger;
 import javax.interceptor.AroundInvoke;
 import javax.interceptor.InvocationContext;
 import javax.naming.InitialContext;
+import javax.naming.NamingException;
 import javax.validation.ConstraintViolation;
 import javax.validation.ConstraintViolationException;
 import javax.validation.ValidationException;
@@ -43,10 +43,10 @@ public class BeanValidationAppendixInter
     private static final Class<?> APACHE_BVAL_METHOD_CLASS = initApache();
     private static final Class<?> HIBERNATE_METHOD_CLASS = initHibernate();
     public static final Class<?>[] BVAL_ARG_TYPES = new Class<?>[]{
-            Class.class, Method.class, Object[].class, Class[].class
+        Class.class, Method.class, Object[].class, Class[].class
     };
     public static final Class<?>[] HIBERNATE_ARG_TYPES = new Class<?>[]{
-            Object.class, Method.class, Object[].class, Class[].class
+        Object.class, Method.class, Object[].class, Class[].class
     };
 
     private static final boolean ON;
@@ -77,6 +77,9 @@ public class BeanValidationAppendixInter
             validator = (Validator) new InitialContext().lookup("java:comp/Validator");
         } catch (final NamingException ne) {
             // no-op
+        } catch (final Exception e) {
+            logger.warning("BeanValidationAppendixInterceptor unexpected error: " + e);
+            return ejbContext.proceed();
         }
 
         final ThreadContext threadContext = ThreadContext.getThreadContext();
@@ -94,25 +97,25 @@ public class BeanValidationAppendixInter
         if (APACHE_BVAL_METHOD_CLASS != null && validator != null) {
             validatorObject = validator.unwrap(APACHE_BVAL_METHOD_CLASS);
             violations = call(Set.class, validatorObject, "validateParameters",
-                    new Object[]{
-                            bvalClazzToValidate, method, ejbContext.getParameters(), new Class[0]
-                    },
-                    BVAL_ARG_TYPES);
+                new Object[]{
+                    bvalClazzToValidate, method, ejbContext.getParameters(), new Class[0]
+                },
+                BVAL_ARG_TYPES);
         } else if (HIBERNATE_METHOD_CLASS != null && validator != null) {
             validatorObject = validator.unwrap(HIBERNATE_METHOD_CLASS);
             violations = call(Set.class, validatorObject, "validateAllParameters",
-                    new Object[]{
-                            ejbContext.getTarget(), ejbContext.getMethod(), ejbContext.getParameters(), new Class[0]
-                    },
-                    HIBERNATE_ARG_TYPES);
+                new Object[]{
+                    ejbContext.getTarget(), ejbContext.getMethod(), ejbContext.getParameters(), new Class[0]
+                },
+                HIBERNATE_ARG_TYPES);
         } else { // a warning message to inform Apache Bean Validation is not present
             if (validator == null) {
                 logger.error("can't find validator");
             } else {
                 logger.warning("Apache Bean Validation is not present, "
-                        + BeanValidationAppendixInterceptor.class.getName() + " will not work. "
-                        + "Please put it if you want to validate your parameters and returned values "
-                        + "with bean validation JSR.");
+                    + BeanValidationAppendixInterceptor.class.getName() + " will not work. "
+                    + "Please put it if you want to validate your parameters and returned values "
+                    + "with bean validation JSR.");
             }
         }
 
@@ -125,20 +128,20 @@ public class BeanValidationAppendixInter
         violations = Collections.emptySet();
         if (validatorObject != null && APACHE_BVAL_METHOD_CLASS != null) {
             violations = call(Set.class, validatorObject, "validateReturnedValue",
-                    new Object[]{
-                            bvalClazzToValidate, method, returnedValue, new Class[0]
-                    },
-                    new Class<?>[]{
-                            Class.class, Method.class, Object.class, Class[].class
-                    });
+                new Object[]{
+                    bvalClazzToValidate, method, returnedValue, new Class[0]
+                },
+                new Class<?>[]{
+                    Class.class, Method.class, Object.class, Class[].class
+                });
         } else if (validatorObject != null && HIBERNATE_METHOD_CLASS != null) {
             violations = call(Set.class, validatorObject, "validateReturnValue",
-                    new Object[]{
-                            ejbContext.getTarget(), ejbContext.getMethod(), returnedValue, new Class[0]
-                    },
-                    new Class<?>[]{
-                            Object.class, Method.class, Object.class, Class[].class
-                    });
+                new Object[]{
+                    ejbContext.getTarget(), ejbContext.getMethod(), returnedValue, new Class[0]
+                },
+                new Class<?>[]{
+                    Object.class, Method.class, Object.class, Class[].class
+                });
         }
 
         if (violations.size() > 0) {