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/03 03:59:36 UTC
svn commit: r644134 -
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java
Author: dblevins
Date: Wed Apr 2 18:59:35 2008
New Revision: 644134
URL: http://svn.apache.org/viewvc?rev=644134&view=rev
Log:
check for callback methods in parent classes as well
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java?rev=644134&r1=644133&r2=644134&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanBuilder.java Wed Apr 2 18:59:35 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;
}