[jboss-cvs] JBossAS SVN: r111388 - in projects/jboss-jca/trunk: deployers/src/main/java/org/jboss/jca/deployers/common and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue May 17 09:19:18 EDT 2011


Author: jesper.pedersen
Date: 2011-05-17 09:19:16 -0400 (Tue, 17 May 2011)
New Revision: 111388

Modified:
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/rar/EndpointImpl.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java
Log:
[JBJCA-575] Proper fix for as.validate()

Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/rar/EndpointImpl.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/rar/EndpointImpl.java	2011-05-16 19:35:18 UTC (rev 111387)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/rar/EndpointImpl.java	2011-05-17 13:19:16 UTC (rev 111388)
@@ -22,14 +22,19 @@
 
 package org.jboss.jca.core.rar;
 
+import org.jboss.jca.core.bv.BeanValidationUtil;
 import org.jboss.jca.core.spi.rar.Endpoint;
 
 import java.lang.ref.WeakReference;
+import java.util.Set;
 
 import javax.resource.ResourceException;
 import javax.resource.spi.ActivationSpec;
 import javax.resource.spi.ResourceAdapter;
 import javax.resource.spi.endpoint.MessageEndpointFactory;
+import javax.validation.ConstraintViolationException;
+import javax.validation.Validator;
+import javax.validation.groups.Default;
 
 /**
  * An endpoint representation
@@ -53,14 +58,31 @@
    /**
     * {@inheritDoc}
     */
+   @SuppressWarnings("unchecked")
    public void activate(MessageEndpointFactory endpointFactory,
                         ActivationSpec spec) throws ResourceException
    {
+      if (endpointFactory == null)
+         throw new IllegalArgumentException("MessageEndpointFactory is null");
+
+      if (spec == null)
+         throw new IllegalArgumentException("ActivationSpec is null");
+
       ResourceAdapter rar = ra.get();
 
       if (rar == null)
          throw new ResourceException("ResourceAdapter instance not active");
 
+      spec.validate();
+
+      Validator validator = BeanValidationUtil.createValidator();
+      Set errors = validator.validate(spec, Default.class);
+
+      if (errors != null && errors.size() > 0)
+      {
+         throw new ResourceException("Validation exception", new ConstraintViolationException(errors));
+      }
+
       rar.endpointActivation(endpointFactory, spec);
    }
 
@@ -70,6 +92,12 @@
    public void deactivate(MessageEndpointFactory endpointFactory,
                           ActivationSpec spec) throws ResourceException
    {
+      if (endpointFactory == null)
+         throw new IllegalArgumentException("MessageEndpointFactory is null");
+
+      if (spec == null)
+         throw new IllegalArgumentException("ActivationSpec is null");
+
       ResourceAdapter rar = ra.get();
 
       if (rar == null)

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java	2011-05-16 19:35:18 UTC (rev 111387)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java	2011-05-17 13:19:16 UTC (rev 111388)
@@ -571,18 +571,10 @@
                               log.trace("ActivationSpec defined in classloader: " + as.getClass().getClassLoader());
                            }
 
-                           archiveValidationObjects.add(new ValidateObject(Key.ACTIVATION_SPEC, as, cpm));
-                           beanValidationObjects.add(as);
+                           // Associate for validation
                            associateResourceAdapter(resourceAdapter, as);
 
-                           try
-                           {
-                              as.validate();
-                           }
-                           catch (Throwable t)
-                           {
-                              throw new DeployException("Validation exception for " + as, t);
-                           }
+                           archiveValidationObjects.add(new ValidateObject(Key.ACTIVATION_SPEC, as, cpm));
                         }
                      }
                   }



More information about the jboss-cvs-commits mailing list