You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by xu...@apache.org on 2011/05/10 14:57:19 UTC

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

Author: xuhaihong
Date: Tue May 10 12:57:18 2011
New Revision: 1101448

URL: http://svn.apache.org/viewvc?rev=1101448&view=rev
Log:
OPENEJB-1546 currently, the inteceptor build only handle the public methods of the bean instead of all methods. (Patch from Shawn Jiang)

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

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java?rev=1101448&r1=1101447&r2=1101448&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java Tue May 10 12:57:18 2011
@@ -113,14 +113,22 @@ public class InterceptorBindingBuilder {
             toMethods(clazz, beanInfo.aroundTimeout, beanAsInterceptor.getAroundTimeout());
         }
 
-        for (Method method : beanContext.getBeanClass().getMethods()) {
-            List<InterceptorData> methodInterceptors = createInterceptorDatas(method, beanInfo.ejbName, this.bindings);
-
-            // The bean itself gets to intercept too and is always last.
-            methodInterceptors.add(beanAsInterceptor);
-
-            beanContext.setMethodInterceptors(method, methodInterceptors);
+       
+        while (clazz != null && !clazz.equals(Object.class)) 
+        {
+            
+            for (Method method : clazz.getDeclaredMethods()) {
+                List<InterceptorData> methodInterceptors = createInterceptorDatas(method, beanInfo.ejbName, this.bindings);
+
+                // The bean itself gets to intercept too and is always last.
+                methodInterceptors.add(beanAsInterceptor);
+                beanContext.setMethodInterceptors(method, methodInterceptors);
+            } 
+            
+             clazz = clazz.getSuperclass();
+ 
         }
+        
 
         List<InterceptorData> callbackInterceptorDatas = createInterceptorDatas(null, beanInfo.ejbName, this.packageAndClassBindings);