[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