[jboss-cvs] JBossAS SVN: r70407 - in projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3: stateful and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Mar 4 22:44:50 EST 2008


Author: bdecoste
Date: 2008-03-04 22:44:50 -0500 (Tue, 04 Mar 2008)
New Revision: 70407

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/tx/TxInterceptor.java
Log:
don't invoke bridge methods - they don't override class level annotations

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2008-03-05 01:39:23 UTC (rev 70406)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2008-03-05 03:44:50 UTC (rev 70407)
@@ -1324,6 +1324,21 @@
       initializeClassContainer();
    }
    
+   protected Method getNonBridgeMethod(Method bridgeMethod)
+   {
+      Class clazz = bridgeMethod.getDeclaringClass();
+      Method[] methods = clazz.getMethods();
+      for (Method method : methods)
+      {
+         if (!method.isBridge() && method.getParameterTypes().length == bridgeMethod.getParameterTypes().length)
+         {
+            return method;
+         }
+      }
+      
+      return bridgeMethod;
+   }
+   
    public String toString()
    {
       return getObjectName().getCanonicalName();

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java	2008-03-05 01:39:23 UTC (rev 70406)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java	2008-03-05 03:44:50 UTC (rev 70407)
@@ -42,6 +42,7 @@
 
 import org.jboss.aop.AspectManager;
 import org.jboss.aop.MethodInfo;
+import org.jboss.aop.advice.Interceptor;
 import org.jboss.aop.joinpoint.Invocation;
 import org.jboss.aop.joinpoint.InvocationResponse;
 import org.jboss.aop.util.MethodHashing;
@@ -352,6 +353,12 @@
             }
             else
             {
+               if (unadvisedMethod.isBridge())
+               {
+                  unadvisedMethod = this.getNonBridgeMethod(unadvisedMethod);
+                  info = super.getMethodInfo(MethodHashing.calculateHash(unadvisedMethod));
+               }
+               
                if (si.getId() == null)
                {
                   StatefulBeanContext ctx = getCache().create(null, null);
@@ -367,7 +374,7 @@
                newSi.setAdvisor(this);
    
                Object rtn = null;
-               
+                 
                invokedMethod.push(new InvokedMethod(false, unadvisedMethod));
                rtn = newSi.invokeNext();
 

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/tx/TxInterceptor.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/tx/TxInterceptor.java	2008-03-05 01:39:23 UTC (rev 70406)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/tx/TxInterceptor.java	2008-03-05 03:44:50 UTC (rev 70407)
@@ -136,7 +136,6 @@
       public Object invoke(Invocation invocation) throws Throwable
       {
          Transaction tx = tm.getTransaction();
-         log.info("!!!!!!!!! invoke " + ((MethodInvocation)invocation).getMethod() + " " + tx);
          if (tx == null)
          {
             policy.throwMandatory(invocation);




More information about the jboss-cvs-commits mailing list