aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/javassist/util/proxy/RuntimeSupport.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/main/javassist/util/proxy/RuntimeSupport.java b/src/main/javassist/util/proxy/RuntimeSupport.java
index 4c5d8996..8c8425f7 100644
--- a/src/main/javassist/util/proxy/RuntimeSupport.java
+++ b/src/main/javassist/util/proxy/RuntimeSupport.java
@@ -52,7 +52,7 @@ public class RuntimeSupport {
{
methods[index + 1] = thisMethod == null ? null
: findMethod(clazz, thisMethod, desc);
- methods[index] = findSuperMethod(clazz, superMethod, desc);
+ methods[index] = findSuperClassMethod(clazz, superMethod, desc);
}
/**
@@ -75,7 +75,19 @@ public class RuntimeSupport {
*
* @throws RuntimeException if the method is not found.
*/
- public static Method findSuperMethod(Class clazz, String name, String desc) {
+ public static Method findSuperMethod(Object self, String name, String desc) {
+ // for JBoss Seam. See JASSIST-183.
+ Class clazz = self.getClass();
+ return findSuperClassMethod(clazz, name, desc);
+ }
+
+ /**
+ * Finds a method that has the given name and descriptor and is declared
+ * in the super class.
+ *
+ * @throws RuntimeException if the method is not found.
+ */
+ public static Method findSuperClassMethod(Class clazz, String name, String desc) {
Method m = findSuperMethod2(clazz.getSuperclass(), name, desc);
if (m == null)
m = searchInterfaces(clazz, name, desc);