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) {