[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