diff --git a/core/src/main/java/org/jboss/jca/core/rar/EndpointImpl.java b/core/src/main/java/org/jboss/jca/core/rar/EndpointImpl.java index 23f55fe..603a22b 100644 --- a/core/src/main/java/org/jboss/jca/core/rar/EndpointImpl.java +++ b/core/src/main/java/org/jboss/jca/core/rar/EndpointImpl.java @@ -137,6 +137,22 @@ public class EndpointImpl implements Endpoint if (is16 && bvEnabled) { ClassLoader oldTCCL = SecurityActions.getThreadContextClassLoader(); + Validator validator = null; + try + { + SecurityActions.setThreadContextClassLoader(SecurityActions.getClassLoader(EndpointImpl.class)); + validator = BeanValidationUtil.createValidator(); + } + catch (RuntimeException re) + { + throw new ResourceException(bundle.validationException(), re); + } + finally + { + SecurityActions.setThreadContextClassLoader(oldTCCL); + } + + oldTCCL = SecurityActions.getThreadContextClassLoader(); try { SecurityActions.setThreadContextClassLoader(SecurityActions.getClassLoader(rar.getClass())); @@ -162,7 +178,6 @@ public class EndpointImpl implements Endpoint if (groups.isEmpty()) groups.add(Default.class); - Validator validator = BeanValidationUtil.createValidator(); Class[] vargs = groups.toArray(new Class[groups.size()]); Set errors = validator.validate(spec, vargs);