[jboss-cvs] JBossAS SVN: r70786 - projects/aop/trunk/aop/src/main/org/jboss/aop/instrument.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 12 16:51:31 EDT 2008


Author: flavia.rainone at jboss.com
Date: 2008-03-12 16:51:31 -0400 (Wed, 12 Mar 2008)
New Revision: 70786

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorMethodExecutionTransformer.java
Log:
[JBAOP-537] Suggested workaround applied for non-static method wrappers.

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorMethodExecutionTransformer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorMethodExecutionTransformer.java	2008-03-12 20:41:02 UTC (rev 70785)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorMethodExecutionTransformer.java	2008-03-12 20:51:31 UTC (rev 70786)
@@ -464,30 +464,32 @@
    {
       String joinpointName = getJoinPointFieldName(trans);
       String infoName = getMethodInfoFieldName(trans.getOriginalName(), trans.getHash());
-
+      
       String code =
          "{" +
-         "   if (" + joinpointName + " == null && " + infoName + " != null && " + infoName + ".hasAdvices())" +
+         "   if (" + infoName + " == null) {"+
+         "         " + getAopReturnStr(trans.getWMethod()) + "$1." + trans.getWrappedName() + "(" + getNonStaticJavasistParamString(trans.getWMethod().getParameterTypes().length) + ");" +
+         (trans.getWMethod().getReturnType().equals(CtClass.voidType)? "return;":"") +
+             "}" +
+         GeneratedAdvisorInstrumentor.generateInterceptorChainLockCode(infoName) +
+         "   try" +
          "   {" +
-         GeneratedAdvisorInstrumentor.generateInterceptorChainLockCode(infoName) +
-         "      try" +
+
+         "      if (" + joinpointName + " == null && " + infoName + " != null && " + infoName + ".hasAdvices())" +
          "      {" +
-         "          if (" + joinpointName + " == null && " + infoName + " != null && " + infoName + ".hasAdvices())" +
-         "          {" +
-         "              super." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(" + infoName + ");" +
-         "          }" +
-         "      } finally {" +
+         "           super." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(" + infoName + ");" +
+         "      }" +
+         "      if (" + joinpointName + " == null)" +
+         "      { " +
+         "         " + getAopReturnStr(trans.getWMethod()) + "$1." + trans.getWrappedName() + "(" + getNonStaticJavasistParamString(trans.getWMethod().getParameterTypes().length) + ");" +
+         "      }" +
+         "      else" +
+         "      {" +
+         "       " + getAopReturnStr(trans.getWMethod()) + joinpointName + "." + MethodJoinPointGenerator.INVOKE_JOINPOINT + "($$);" +
+         "      }" +
+         "   } finally {" +
          GeneratedAdvisorInstrumentor.generateInterceptorChainUnlockCode(infoName) +
-         "      }" +
          "   }" +
-         "   if (" + joinpointName + " == null)" +
-         "   { " +
-         "      " + getAopReturnStr(trans.getWMethod()) + "$1." + trans.getWrappedName() + "(" + getNonStaticJavasistParamString(trans.getWMethod().getParameterTypes().length) + ");" +
-         "   }" +
-         "   else" +
-         "   {" +
-         "    " + getAopReturnStr(trans.getWMethod()) + joinpointName + "." + MethodJoinPointGenerator.INVOKE_JOINPOINT + "($$);" +
-         "   }" +
          "}";
 
       return code;




More information about the jboss-cvs-commits mailing list