You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/04/08 18:15:11 UTC

svn commit: r1311032 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java

Author: rmannibucau
Date: Sun Apr  8 16:15:10 2012
New Revision: 1311032

URL: http://svn.apache.org/viewvc?rev=1311032&view=rev
Log:
if callbackinfo doesn't use the same class than the current bean class try to oad the specified class (can happen for dynamic impl when using hooks in the handler)

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java?rev=1311032&r1=1311031&r2=1311032&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java Sun Apr  8 16:15:10 2012
@@ -334,8 +334,17 @@ public class InterceptorBindingBuilder {
         List<Method> methods = new ArrayList<Method>();
 
         for (CallbackInfo callbackInfo : callbackInfos) {
+            Class<?> usedClazz = clazz;
+            if (!callbackInfo.className.equals(clazz.getName())) { // dynamic mbean for instance
+                try {
+                    usedClazz = clazz.getClassLoader().loadClass(callbackInfo.className);
+                } catch (ClassNotFoundException e) {
+                    // ignored
+                }
+            }
+
             try {
-                Method method = getMethod(clazz, callbackInfo.method, parameterTypes);
+                Method method = getMethod(usedClazz, callbackInfo.method, parameterTypes);
                 if (callbackInfo.className == null && !methods.contains(method)){
                     methods.add(method);
                 } else if (method.getDeclaringClass().getName().equals(callbackInfo.className) && !methods.contains(method)){