[jboss-cvs] JBossAS SVN: r70415 - in projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3: lang and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 5 07:20:28 EST 2008


Author: wolfc
Date: 2008-03-05 07:20:28 -0500 (Wed, 05 Mar 2008)
New Revision: 70415

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/lang/ClassHelper.java
Log:
EJBTHREE-1174: more descriptive ClassCastException

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java	2008-03-05 12:09:44 UTC (rev 70414)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java	2008-03-05 12:20:28 UTC (rev 70415)
@@ -40,7 +40,6 @@
 import javax.naming.NamingException;
 import javax.persistence.Entity;
 import javax.security.jacc.PolicyConfiguration;
-import javax.security.jacc.PolicyConfigurationFactory;
 
 import org.hibernate.ejb.packaging.PersistenceMetadata;
 import org.jboss.deployers.spi.DeploymentException;
@@ -54,6 +53,7 @@
 import org.jboss.ejb3.javaee.JavaEEApplication;
 import org.jboss.ejb3.javaee.JavaEEComponent;
 import org.jboss.ejb3.javaee.JavaEEModule;
+import org.jboss.ejb3.lang.ClassHelper;
 import org.jboss.ejb3.metadata.jpa.spec.PersistenceUnitMetaData;
 import org.jboss.ejb3.metadata.jpa.spec.PersistenceUnitsMetaData;
 import org.jboss.ejb3.pool.PoolFactoryRegistry;
@@ -810,7 +810,7 @@
    {
       if(metaData == null)
          return null;
-      return enterpriseBeanMetaDataClass.cast(metaData.getEnterpriseBean(ejbName));
+      return ClassHelper.cast(enterpriseBeanMetaDataClass, metaData.getEnterpriseBean(ejbName));
    }
    
    /**

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/lang/ClassHelper.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/lang/ClassHelper.java	2008-03-05 12:09:44 UTC (rev 70414)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/lang/ClassHelper.java	2008-03-05 12:20:28 UTC (rev 70415)
@@ -35,6 +35,31 @@
 public class ClassHelper
 {
    /**
+    * Casts an object to the class or interface represented
+    * by the targetClass <tt>Class</tt> object.
+    * The ClassCastException thrown is more descriptive than
+    * the original.
+    *
+    * @param obj the object to be cast
+    * @return the object after casting, or null if obj is null
+    *
+    * @throws ClassCastException if the object is not
+    * null and is not assignable to the type T.
+    */
+   public static <T> T cast(Class<T> targetClass, Object obj)
+   {
+      try
+      {
+         return targetClass.cast(obj);
+      }
+      catch(ClassCastException e)
+      {
+         assert obj != null : "a null can always be cast, it should never throw a ClassCastException";
+         throw new ClassCastException("Unable to cast " + obj.getClass() + " to " + targetClass);
+      }
+   }
+   
+   /**
     * @see Class#argumentTypesToString
     */
    private static String argumentTypesToString(Class<?>[] argTypes)




More information about the jboss-cvs-commits mailing list