[jboss-cvs] JBossAS SVN: r64154 - trunk/ejb3/src/main/org/jboss/ejb3.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jul 20 04:30:26 EDT 2007


Author: wolfc
Date: 2007-07-20 04:30:26 -0400 (Fri, 20 Jul 2007)
New Revision: 64154

Modified:
   trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java
Log:
EJBTHREE-1016: Fixed regression on interceptors

Modified: trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java	2007-07-20 05:31:44 UTC (rev 64153)
+++ trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java	2007-07-20 08:30:26 UTC (rev 64154)
@@ -357,7 +357,7 @@
       {
          for(Method method : businessInterface.getMethods())
          {
-            if(businessMethod.equals(method))
+            if(isCallable(method, businessMethod))
                return true;
          }
       }
@@ -365,6 +365,36 @@
    }
    
    /**
+    * Can method definition method be used to call method other.
+    * For example if the method is defined in an interface it can be used to call a method
+    * in a class.
+    * 
+    * @param method
+    * @param other
+    * @return
+    */
+   private static boolean isCallable(Method method, Method other)
+   {
+      if ((method.getDeclaringClass().isAssignableFrom(other.getDeclaringClass())) && (method.getName() == other.getName()))
+      {
+         if (!method.getReturnType().equals(other.getReturnType()))
+            return false;
+         Class[] params1 = method.getParameterTypes();
+         Class[] params2 = other.getParameterTypes();
+         if (params1.length == params2.length)
+         {
+            for (int i = 0; i < params1.length; i++)
+            {
+               if (params1[i] != params2[i])
+                  return false;
+            }
+            return true;
+         }
+      }
+      return false;
+   }   
+   
+   /**
     * introspects EJB container to find all dependencies
     * and initialize any extra metadata.
     * <p/>




More information about the jboss-cvs-commits mailing list