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)){