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;
}