You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2008/04/04 23:02:25 UTC

svn commit: r644920 - /openejb/branches/openejb-3.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java

Author: dblevins
Date: Fri Apr  4 14:02:22 2008
New Revision: 644920

URL: http://svn.apache.org/viewvc?rev=644920&view=rev
Log:
Merging r644134 - http://svn.apache.org/viewvc?rev=644134&view=rev

svn merge -r 644133:644134 https://svn.apache.org/repos/asf/openejb/trunk/openejb3 .

------------------------------------------------------------------------
r644134 | dblevins | 2008-04-02 18:59:35 -0700 (Wed, 02 Apr 2008) | 1 line

check for callback methods in parent classes as well
------------------------------------------------------------------------

Modified:
    openejb/branches/openejb-3.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java

Modified: openejb/branches/openejb-3.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java?rev=644920&r1=644919&r2=644920&view=diff
==============================================================================
--- openejb/branches/openejb-3.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java (original)
+++ openejb/branches/openejb-3.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java Fri Apr  4 14:02:22 2008
@@ -321,7 +321,6 @@
     }
 
     private Method toMethod(Class clazz, NamedMethodInfo info) {
-        Method method = null;
         List<Class> parameterTypes = new ArrayList<Class>();
 
         if (info.methodParams != null){
@@ -334,12 +333,21 @@
             }
         }
 
-        try {
-            method = clazz.getDeclaredMethod(info.methodName, parameterTypes.toArray(new Class[parameterTypes.size()]));
-        } catch (NoSuchMethodException e) {
-            throw new IllegalStateException("Callback method does not exist: " + clazz.getName() + "." + info.methodName, e);
+        Class[] parameters = parameterTypes.toArray(new Class[parameterTypes.size()]);
+
+        IllegalStateException noSuchMethod = null;
+        while (clazz != null) {
+            try {
+                return clazz.getDeclaredMethod(info.methodName, parameters);
+            } catch (NoSuchMethodException e) {
+                if (noSuchMethod == null) {
+                    noSuchMethod = new IllegalStateException("Callback method does not exist: " + clazz.getName() + "." + info.methodName, e);
+                }
+                clazz = clazz.getSuperclass();
+            }
         }
-        return method;
+
+        throw noSuchMethod;
     }