[jboss-cvs] JBossAS SVN: r64167 - in projects/aop/trunk/aop/src/main/org/jboss/aop: instrument and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jul 20 23:54:33 EDT 2007
Author: flavia.rainone at jboss.com
Date: 2007-07-20 23:54:32 -0400 (Fri, 20 Jul 2007)
New Revision: 64167
Modified:
projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java
projects/aop/trunk/aop/src/main/org/jboss/aop/ConByConInfo.java
projects/aop/trunk/aop/src/main/org/jboss/aop/ConByMethodInfo.java
projects/aop/trunk/aop/src/main/org/jboss/aop/MethodByConInfo.java
projects/aop/trunk/aop/src/main/org/jboss/aop/MethodByMethodInfo.java
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/CallerInfoAdder.java
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ClassicCallerInfoAdder.java
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerInfoAdder.java
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerTransformer.java
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/NonOptimizedCallerTransformer.java
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedCallerTransformer.java
Log:
[JBAOP-441] Bug solved.
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -641,7 +641,7 @@
constructionInfos = (ConstructionInfo[]) newConstructionInfos.toArray(new ConstructionInfo[newConstructionInfos.size()]);
}
- private MethodByConInfo initializeConstructorCallerInterceptorsMap(int callingIndex, String calledClass, long calledMethodHash, Method calledMethod) throws Exception
+ private MethodByConInfo initializeConstructorCallerInterceptorsMap(Class callingClass, int callingIndex, String calledClass, long calledMethodHash, Method calledMethod) throws Exception
{
HashMap calledClassesMap = methodCalledByConInterceptors[callingIndex];
if (calledClassesMap == null)
@@ -659,12 +659,12 @@
//The standard MethodCalledByXXXXInvocation class calls by reflection and needs access
calledMethod.setAccessible(true);
Class calledClazz = Thread.currentThread().getContextClassLoader().loadClass(calledClass);
- MethodByConInfo info = new MethodByConInfo(this, calledClazz, callingIndex, calledMethod, calledMethodHash, null);
+ MethodByConInfo info = new MethodByConInfo(this, calledClazz, callingClass, callingIndex, calledMethod, calledMethodHash, null);
calledMethodsMap.put(calledMethodHash, info);
return info;
}
- private ConByConInfo initializeConCalledByConInterceptorsMap(int callingIndex, String calledClass, long calledConHash, Constructor calledCon) throws Exception
+ private ConByConInfo initializeConCalledByConInterceptorsMap(Class callingClass, int callingIndex, String calledClass, long calledConHash, Constructor calledCon) throws Exception
{
HashMap calledClassesMap = conCalledByConInterceptors[callingIndex];
if (calledClassesMap == null)
@@ -678,13 +678,13 @@
calledMethodsMap = new TLongObjectHashMap();
calledClassesMap.put(calledClass, calledMethodsMap);
}
- ConByConInfo info = createConByConInfo(callingIndex, calledClass, calledCon, calledConHash);
+ ConByConInfo info = createConByConInfo(callingClass, callingIndex, calledClass, calledCon, calledConHash);
calledMethodsMap.put(calledConHash, info);
return info;
}
- private ConByConInfo createConByConInfo(int callingIndex, String calledClass, Constructor calledCon, long calledConHash) throws Exception
+ private ConByConInfo createConByConInfo(Class callingClass, int callingIndex, String calledClass, Constructor calledCon, long calledConHash) throws Exception
{
//The standard ConstructorCalledByXXXXInvocation class calls by reflection and needs access
calledCon.setAccessible(true);
@@ -695,11 +695,11 @@
int index = calledClass.lastIndexOf('.');
String baseClassName = calledClass.substring(index + 1);
Method wrapper = calledCon.getDeclaringClass().getDeclaredMethod(ConstructorExecutionTransformer.constructorFactory(baseClassName), calledCon.getParameterTypes());
- return new ConByConInfo(this, calledClazz, callingIndex, calledCon, calledConHash, wrapper, null);
+ return new ConByConInfo(this, calledClazz, callingClass, callingIndex, calledCon, calledConHash, wrapper, null);
}
catch (NoSuchMethodException e)
{
- return new ConByConInfo(this, calledClazz, callingIndex, calledCon, calledConHash, null, null);
+ return new ConByConInfo(this, calledClazz, callingClass, callingIndex, calledCon, calledConHash, null, null);
}
}
@@ -1237,19 +1237,25 @@
return new WeakReference(resolveCallerConstructorInfo(callingMethodHash, calledClass, calledConHash));
}
+ @Deprecated
public MethodByConInfo resolveConstructorCallerMethodInfo(int callingIndex, String calledClass, long calledMethodHash)
{
+ return resolveConstructorCallerMethodInfo(this.getClazz(), callingIndex, calledClass, calledMethodHash);
+ }
+
+ public MethodByConInfo resolveConstructorCallerMethodInfo(Class callingClass, int callingIndex, String calledClass, long calledMethodHash)
+ {
if (System.getSecurityManager() == null)
{
- return ResolveConstructorCallerMethodInfoAction.NON_PRIVILEGED.resolveInfo(this, callingIndex, calledClass, calledMethodHash);
+ return ResolveConstructorCallerMethodInfoAction.NON_PRIVILEGED.resolveInfo(this, callingClass, callingIndex, calledClass, calledMethodHash);
}
else
{
- return ResolveConstructorCallerMethodInfoAction.PRIVILEGED.resolveInfo(this, callingIndex, calledClass, calledMethodHash);
+ return ResolveConstructorCallerMethodInfoAction.PRIVILEGED.resolveInfo(this, callingClass, callingIndex, calledClass, calledMethodHash);
}
}
- private MethodByConInfo doResolveConstructorCallerMethodInfo(int callingIndex, String calledClass, long calledMethodHash)
+ private MethodByConInfo doResolveConstructorCallerMethodInfo(Class callingClass, int callingIndex, String calledClass, long calledMethodHash)
{
try
{
@@ -1275,7 +1281,7 @@
}
}
if (!matched) initializeEmptyConstructorCallerChain(callingIndex, calledClass, calledMethodHash);
- MethodByConInfo info = initializeConstructorCallerInterceptorsMap(callingIndex, calledClass, calledMethodHash, calledMethod);
+ MethodByConInfo info = initializeConstructorCallerInterceptorsMap(callingClass, callingIndex, calledClass, calledMethodHash, calledMethod);
ArrayList bindings = getConstructorCallerBindings(callingIndex, calledClass, calledMethodHash);
bindConstructorCallerInterceptorChain(bindings, callingIndex, calledClass, calledMethodHash);
return info;
@@ -1286,26 +1292,37 @@
}
}
-
+ @Deprecated
public WeakReference resolveConstructorCallerMethodInfoAsWeakReference(int callingIndex, String calledClass, long calledMethodHash)
{
//Javassist doesn't like this in a field initialiser hence this method
return new WeakReference(resolveConstructorCallerMethodInfo(callingIndex, calledClass, calledMethodHash));
}
+ public WeakReference resolveConstructorCallerMethodInfoAsWeakReference(Class callingClass, int callingIndex, String calledClass, long calledMethodHash)
+ {
+ //Javassist doesn't like this in a field initialiser hence this method
+ return new WeakReference(resolveConstructorCallerMethodInfo(callingClass, callingIndex, calledClass, calledMethodHash));
+ }
+
public ConByConInfo resolveConstructorCallerConstructorInfo(int callingIndex, String calledClass, long calledConHash)
{
+ return resolveConstructorCallerConstructorInfo(this.getClazz(), callingIndex, calledClass, calledConHash);
+ }
+
+ public ConByConInfo resolveConstructorCallerConstructorInfo(Class callingClass, int callingIndex, String calledClass, long calledConHash)
+ {
if (System.getSecurityManager() == null)
{
- return ResolveConstructorCallerConstructorInfoAction.NON_PRIVILEGED.resolveInfo(this, callingIndex, calledClass, calledConHash);
+ return ResolveConstructorCallerConstructorInfoAction.NON_PRIVILEGED.resolveInfo(this, callingClass, callingIndex, calledClass, calledConHash);
}
else
{
- return ResolveConstructorCallerConstructorInfoAction.PRIVILEGED.resolveInfo(this, callingIndex, calledClass, calledConHash);
+ return ResolveConstructorCallerConstructorInfoAction.PRIVILEGED.resolveInfo(this, callingClass, callingIndex, calledClass, calledConHash);
}
}
- private ConByConInfo doResolveConstructorCallerConstructorInfo(int callingIndex, String calledClass, long calledConHash)
+ private ConByConInfo doResolveConstructorCallerConstructorInfo(Class callingClass, int callingIndex, String calledClass, long calledConHash)
{
try
{
@@ -1330,7 +1347,7 @@
}
}
if (!matched) initializeConCalledByConEmptyChain(callingIndex, calledClass, calledConHash);
- ConByConInfo info = initializeConCalledByConInterceptorsMap(callingIndex, calledClass, calledConHash, calledCon);
+ ConByConInfo info = initializeConCalledByConInterceptorsMap(callingClass, callingIndex, calledClass, calledConHash, calledCon);
ArrayList bindings = getConCalledByConBindings(callingIndex, calledClass, calledConHash);
bindConCalledByConInterceptorChain(bindings, callingIndex, calledClass, calledConHash);
return info;
@@ -1341,11 +1358,19 @@
}
}
+ @Deprecated
public WeakReference resolveConstructorCallerConstructorInfoAsWeakReference(int callingIndex, String calledClass, long calledConHash)
{
//Javassist doesn't like this in a field initialiser hence this method
return new WeakReference(resolveConstructorCallerConstructorInfo(callingIndex, calledClass, calledConHash));
}
+
+ public WeakReference resolveConstructorCallerConstructorInfoAsWeakReference(Class callingClass, int callingIndex, String calledClass, long calledConHash)
+ {
+ //Javassist doesn't like this in a field initialiser hence this method
+ return new WeakReference(resolveConstructorCallerConstructorInfo(callingClass, callingIndex, calledClass, calledConHash));
+ }
+
/////////////////////////
// Invoking
@@ -1827,11 +1852,11 @@
interface ResolveConstructorCallerMethodInfoAction
{
- MethodByConInfo resolveInfo(ClassAdvisor advisor, int callingIndex, String calledClass, long calledMethodHash);
+ MethodByConInfo resolveInfo(ClassAdvisor advisor, Class callingClass, int callingIndex, String calledClass, long calledMethodHash);
ResolveConstructorCallerMethodInfoAction PRIVILEGED = new ResolveConstructorCallerMethodInfoAction()
{
- public MethodByConInfo resolveInfo(final ClassAdvisor advisor, final int callingIndex, final String calledClass, final long calledMethodHash)
+ public MethodByConInfo resolveInfo(final ClassAdvisor advisor, final Class callingClass, final int callingIndex, final String calledClass, final long calledMethodHash)
{
try
{
@@ -1839,7 +1864,7 @@
{
public Object run() throws Exception
{
- return advisor.doResolveConstructorCallerMethodInfo(callingIndex, calledClass, calledMethodHash);
+ return advisor.doResolveConstructorCallerMethodInfo(callingClass, callingIndex, calledClass, calledMethodHash);
}
});
}
@@ -1857,20 +1882,20 @@
ResolveConstructorCallerMethodInfoAction NON_PRIVILEGED = new ResolveConstructorCallerMethodInfoAction()
{
- public MethodByConInfo resolveInfo(ClassAdvisor advisor, int callingIndex, String calledClass, long calledMethodHash)
+ public MethodByConInfo resolveInfo(ClassAdvisor advisor, Class callingClass, int callingIndex, String calledClass, long calledMethodHash)
{
- return advisor.doResolveConstructorCallerMethodInfo(callingIndex, calledClass, calledMethodHash);
+ return advisor.doResolveConstructorCallerMethodInfo(callingClass, callingIndex, calledClass, calledMethodHash);
}
};
}
interface ResolveConstructorCallerConstructorInfoAction
{
- ConByConInfo resolveInfo(ClassAdvisor advisor, int callingIndex, String calledClass, long calledConHash);
+ ConByConInfo resolveInfo(ClassAdvisor advisor, Class callingClass, int callingIndex, String calledClass, long calledConHash);
ResolveConstructorCallerConstructorInfoAction PRIVILEGED = new ResolveConstructorCallerConstructorInfoAction()
{
- public ConByConInfo resolveInfo(final ClassAdvisor advisor, final int callingIndex, final String calledClass, final long calledConHash)
+ public ConByConInfo resolveInfo(final ClassAdvisor advisor, final Class callingClass, final int callingIndex, final String calledClass, final long calledConHash)
{
try
{
@@ -1878,7 +1903,7 @@
{
public Object run() throws Exception
{
- return advisor.doResolveConstructorCallerConstructorInfo(callingIndex, calledClass, calledConHash);
+ return advisor.doResolveConstructorCallerConstructorInfo(callingClass, callingIndex, calledClass, calledConHash);
}
});
}
@@ -1896,9 +1921,9 @@
ResolveConstructorCallerConstructorInfoAction NON_PRIVILEGED = new ResolveConstructorCallerConstructorInfoAction()
{
- public ConByConInfo resolveInfo(ClassAdvisor advisor, int callingIndex, String calledClass, long calledConHash)
+ public ConByConInfo resolveInfo(ClassAdvisor advisor, Class callingClass, int callingIndex, String calledClass, long calledConHash)
{
- return advisor.doResolveConstructorCallerConstructorInfo(callingIndex, calledClass, calledConHash);
+ return advisor.doResolveConstructorCallerConstructorInfo(callingClass, callingIndex, calledClass, calledConHash);
}
};
}
@@ -2152,7 +2177,7 @@
calledMethod.setAccessible(true);
Class calledClazz = Thread.currentThread().getContextClassLoader().loadClass(calledClass);
- MethodByMethodInfo info = new MethodByMethodInfo(ClassAdvisor.this, calledClazz, calledMethod, callingMethodHash, calledMethodHash, null);
+ MethodByMethodInfo info = new MethodByMethodInfo(ClassAdvisor.this, calledClazz, calledMethod, callingMethod, callingMethodHash, calledMethodHash, null);
calledMethodsMap.put(calledMethodHash, info);
return info;
}
@@ -2296,7 +2321,7 @@
}
}
if (!matched) initializeConCalledByMethodEmptyChain(callingMethodHash, calledClass, calledConHash);
- ConByMethodInfo info = initializeConCalledByMethodInterceptorsMap(callingMethodHash, calledClass, calledConHash, calledCon);
+ ConByMethodInfo info = initializeConCalledByMethodInterceptorsMap(callingMethod, callingMethodHash, calledClass, calledConHash, calledCon);
ArrayList bindings = getConCalledByMethodBindings(callingMethodHash, calledClass, calledConHash);
bindConCalledByMethodInterceptorChain(bindings, callingMethodHash, calledClass, calledConHash);
return info;
@@ -2345,7 +2370,7 @@
else if (createdBindings) backrefs.add(bindings);
}
- private ConByMethodInfo initializeConCalledByMethodInterceptorsMap(long callingMethodHash, String calledClass, long calledConHash, Constructor calledCon) throws Exception
+ private ConByMethodInfo initializeConCalledByMethodInterceptorsMap(Method callingMethod, long callingMethodHash, String calledClass, long calledConHash, Constructor calledCon) throws Exception
{
HashMap calledClassesMap = (HashMap) conCalledByMethodInterceptors.get(callingMethodHash);
if (calledClassesMap == null)
@@ -2360,7 +2385,7 @@
calledClassesMap.put(calledClass, calledMethodsMap);
}
- ConByMethodInfo info = createConByMethodInfo(calledClass, callingMethodHash, calledCon, calledConHash);
+ ConByMethodInfo info = createConByMethodInfo(calledClass, callingMethod, callingMethodHash, calledCon, calledConHash);
calledMethodsMap.put(calledConHash, info);
return info;
}
@@ -2395,7 +2420,7 @@
return info;
}
- private ConByMethodInfo createConByMethodInfo(String calledClass, long callingMethodHash, Constructor calledCon, long calledConHash) throws Exception
+ private ConByMethodInfo createConByMethodInfo(String calledClass, Method callingMethod, long callingMethodHash, Constructor calledCon, long calledConHash) throws Exception
{
//The standard ConstructorCalledByXXXXInvocation class calls by reflection and needs access
calledCon.setAccessible(true);
@@ -2406,11 +2431,11 @@
int index = calledClass.lastIndexOf('.');
String baseClassName = calledClass.substring(index + 1);
Method wrapper = calledCon.getDeclaringClass().getDeclaredMethod(ConstructorExecutionTransformer.constructorFactory(baseClassName), calledCon.getParameterTypes());
- return new ConByMethodInfo(ClassAdvisor.this, calledClazz, callingMethodHash, calledCon, calledConHash, wrapper, null);
+ return new ConByMethodInfo(ClassAdvisor.this, calledClazz, callingMethod, callingMethodHash, calledCon, calledConHash, wrapper, null);
}
catch (NoSuchMethodException e)
{
- return new ConByMethodInfo(ClassAdvisor.this, calledClazz, callingMethodHash, calledCon, calledConHash, null, null);
+ return new ConByMethodInfo(ClassAdvisor.this, calledClazz, callingMethod, callingMethodHash, calledCon, calledConHash, null, null);
}
}
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ConByConInfo.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ConByConInfo.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ConByConInfo.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -25,8 +25,8 @@
import java.lang.reflect.Method;
import org.jboss.aop.advice.Interceptor;
+import org.jboss.aop.joinpoint.ConstructorCallByConstructor;
import org.jboss.aop.joinpoint.ConstructorCalledByConstructorJoinpoint;
-import org.jboss.aop.joinpoint.ConstructorCallByConstructor;
import org.jboss.aop.joinpoint.Joinpoint;
/**
@@ -39,13 +39,18 @@
private final int callingIndex;
private final Constructor calling;
- public ConByConInfo(Advisor advisor, Class calledClass, int callingIndex, Constructor called, long calledConHash, Method wrappingMethod, Interceptor[] in)
+ public ConByConInfo(Advisor advisor, Class calledClass, Class callingClass, int callingIndex, Constructor called, long calledConHash, Method wrappingMethod, Interceptor[] in)
{
- super(advisor, calledClass, called, calledConHash, wrappingMethod, in, advisor.getClazz());
+ super(advisor, calledClass, called, calledConHash, wrappingMethod, in, callingClass);
this.callingIndex = callingIndex;
- this.calling = advisor.constructors[callingIndex];
+ Advisor tempAdvisor = advisor;
+ if (advisor.getClazz() != callingClass)
+ {
+ tempAdvisor = advisor.manager.getAdvisor(callingClass);
+ }
+ this.calling = tempAdvisor.constructors[callingIndex];
}
-
+
/*
* For copying
*/
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ConByMethodInfo.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ConByMethodInfo.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ConByMethodInfo.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -46,19 +46,12 @@
* @param c
* @param in
*/
- public ConByMethodInfo(Advisor advisor, Class calledClass, long callingMethodHash, Constructor c, long calledConHash, Method wrappingMethod, Interceptor[] in)
+ public ConByMethodInfo(Advisor advisor, Class calledClass, Method callingMethod, long callingMethodHash, Constructor c, long calledConHash, Method wrappingMethod, Interceptor[] in)
{
// FIXME ConByMethodJoinPont constructor
- super(advisor, calledClass, c, calledConHash, wrappingMethod, in, advisor.getClazz());
- try
- {
- this.callingMethodHash = callingMethodHash;
- callingMethod = MethodHashing.findMethodByHash(getCallingClass(), callingMethodHash);
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
+ super(advisor, calledClass, c, calledConHash, wrappingMethod, in, callingMethod.getDeclaringClass());
+ this.callingMethodHash = callingMethodHash;
+ this.callingMethod = callingMethod;
}
/*
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/MethodByConInfo.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/MethodByConInfo.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/MethodByConInfo.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -22,6 +22,7 @@
package org.jboss.aop;
import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.jboss.aop.advice.Interceptor;
@@ -40,12 +41,17 @@
private final int callingIndex;
private final Constructor calling;
- public MethodByConInfo(Advisor advisor, Class calledClass, int callingIndex, Method m, long calledMethodHash, Interceptor[] in)
+ public MethodByConInfo(Advisor advisor, Class calledClass, Class callingClass, int callingIndex, Method m, long calledMethodHash, Interceptor[] in)
{
// FIXME MethodByConInfo constructor
- super(advisor, calledClass, m, calledMethodHash, in, advisor.getClazz());
+ super(advisor, calledClass, m, calledMethodHash, in, callingClass);
this.callingIndex = callingIndex;
- calling = advisor.constructors[callingIndex];
+ Advisor tempAdvisor = advisor;
+ if (advisor.getClazz() != callingClass)
+ {
+ tempAdvisor = advisor.manager.getAdvisor(callingClass);
+ }
+ calling = tempAdvisor.constructors[callingIndex];
}
/*
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/MethodByMethodInfo.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/MethodByMethodInfo.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/MethodByMethodInfo.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -39,18 +39,11 @@
private final long callingMethodHash;
private final Method callingMethod;
- public MethodByMethodInfo(Advisor advisor, Class calledClass, Method m, long callingMethodHash, long calledMethodHash, Interceptor[] in)
+ public MethodByMethodInfo(Advisor advisor, Class calledClass, Method m, Method callingMethod, long callingMethodHash, long calledMethodHash, Interceptor[] in)
{
- super(advisor, calledClass, m, calledMethodHash, in, advisor.getClazz());
- try
- {
- this.callingMethodHash = callingMethodHash;
- callingMethod = MethodHashing.findMethodByHash(getCallingClass(), callingMethodHash);
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
+ super(advisor, calledClass, m, calledMethodHash, in, callingMethod.getDeclaringClass());
+ this.callingMethodHash = callingMethodHash;
+ this.callingMethod = callingMethod;
}
/*
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/CallerInfoAdder.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/CallerInfoAdder.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/CallerInfoAdder.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -53,9 +53,9 @@
protected abstract void addConByMethodInfoField(CtClass addTo, String fieldName, long callingHash, String classname, long calledHash) throws NotFoundException, CannotCompileException;
- protected abstract void addConByConInfoField(CtClass addTo, String fieldName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException;
+ protected abstract void addConByConInfoField(CtClass addTo, String fieldName, String callingClassName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException;
- protected abstract void addMethodByConInfoField(CtClass addTo, String fieldName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException;
+ protected abstract void addMethodByConInfoField(CtClass addTo, String fieldName, String callingClassName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException;
protected void addConByConInfoField(CtClass addTo, String fieldName, String init) throws NotFoundException, CannotCompileException
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ClassicCallerInfoAdder.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ClassicCallerInfoAdder.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ClassicCallerInfoAdder.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -51,15 +51,15 @@
addConByMethodInfoField(addTo, fieldName, init);
}
- protected void addConByConInfoField(CtClass addTo, String fieldName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException
+ protected void addConByConInfoField(CtClass addTo, String fieldName, String callingClassName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException
{
- String init = "aop$classAdvisor$aop.resolveConstructorCallerConstructorInfoAsWeakReference(" + callingIndex + ", \"" + classname + "\", " + calledHash + "L)";
+ String init = "aop$classAdvisor$aop.resolveConstructorCallerConstructorInfoAsWeakReference(" + addTo.getName() + ".class, " + callingIndex + ", \"" + classname + "\", " + calledHash + "L)";
addConByConInfoField(addTo, fieldName, init);
}
- protected void addMethodByConInfoField(CtClass addTo, String fieldName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException
+ protected void addMethodByConInfoField(CtClass addTo, String fieldName, String callingClassName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException
{
- String init = "aop$classAdvisor$aop.resolveConstructorCallerMethodInfoAsWeakReference(" + callingIndex + ", \"" + classname + "\", " + calledHash + "L)";
+ String init = "aop$classAdvisor$aop.resolveConstructorCallerMethodInfoAsWeakReference(" + addTo.getName() + ".class, " + callingIndex + ", \"" + classname + "\", " + calledHash + "L)";
addMethodByConInfoField(addTo, fieldName, init);
}
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerInfoAdder.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerInfoAdder.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerInfoAdder.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -42,6 +42,7 @@
protected void addMethodByMethodInfoField(CtClass addTo, String fieldName, long callingHash, String classname, long calledHash) throws NotFoundException, CannotCompileException
{
+ // addTo is the advisor class
String init = "resolveCallerMethodInfo(" + callingHash + "L, \"" + classname + "\", " + calledHash + "L)";
addMethodByMethodInfoField(addTo, fieldName, null);
((GeneratedAdvisorInstrumentor)instrumentor).initialiseCallerInfoField(fieldName, init);
@@ -54,16 +55,16 @@
((GeneratedAdvisorInstrumentor)instrumentor).initialiseCallerInfoField(fieldName, init);
}
- protected void addConByConInfoField(CtClass addTo, String fieldName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException
+ protected void addConByConInfoField(CtClass addTo, String fieldName, String callingClassName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException
{
- String init = "resolveConstructorCallerConstructorInfo(" + callingIndex + ", \"" + classname + "\", " + calledHash + "L)";
+ String init = "resolveConstructorCallerConstructorInfo(" + callingClassName + ".class, " + callingIndex + ", \"" + classname + "\", " + calledHash + "L)";
addConByConInfoField(addTo, fieldName, null);
((GeneratedAdvisorInstrumentor)instrumentor).initialiseCallerInfoField(fieldName, init);
}
- protected void addMethodByConInfoField(CtClass addTo, String fieldName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException
+ protected void addMethodByConInfoField(CtClass addTo, String fieldName, String callingClassName, int callingIndex, String classname, long calledHash) throws NotFoundException, CannotCompileException
{
- String init = "resolveConstructorCallerMethodInfo(" + callingIndex + ", \"" + classname + "\", " + calledHash + "L)";
+ String init = "resolveConstructorCallerMethodInfo(" + callingClassName + ".class, " + callingIndex + ", \"" + classname + "\", " + calledHash + "L)";
addMethodByConInfoField(addTo, fieldName, null);
((GeneratedAdvisorInstrumentor)instrumentor).initialiseCallerInfoField(fieldName, init);
}
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerTransformer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerTransformer.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerTransformer.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -77,7 +77,7 @@
if (callerInfos.get(cd.callerInfoField) == null)
{
callerInfos.put(cd.callerInfoField, NonOptimizedCallerTransformer.PLACEHOLDER);
- callerInfoAdder.addMethodByConInfoField(getGenadvisor(), cd.callerInfoField, cd.callingIndex, cd.classname, cd.calledHash);
+ callerInfoAdder.addMethodByConInfoField(getGenadvisor(), cd.callerInfoField, callingClass.getName(), cd.callingIndex, cd.classname, cd.calledHash);
addJoinpoint(cd);
createGenAdvisorMethodByConMethod(cd);
}
@@ -374,7 +374,7 @@
if (callerInfos.get(cd.callerInfoField) == null)
{
callerInfos.put(cd.callerInfoField, NonOptimizedCallerTransformer.PLACEHOLDER);
- callerInfoAdder.addConByConInfoField(getGenadvisor(), cd.callerInfoField, cd.callingIndex, cd.classname, cd.calledHash);
+ callerInfoAdder.addConByConInfoField(getGenadvisor(), cd.callerInfoField, callingClass.getName(), cd.callingIndex, cd.classname, cd.calledHash);
addJoinpoint(cd);
createGenAdvisorConByConMethod(cd);
}
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -278,7 +278,8 @@
INITIALISE_CALLERS,
EMPTY_SIG,
EMPTY_EXCEPTIONS,
- null, //"{" + GeneratedClassAdvisor.CLEAR_CALLERS + "();}",
+ (isBaseClass(clazz)) ?
+ null : "{super." + INITIALISE_CALLERS + "();}",
genadvisor);
genadvisor.addMethod(initialiseCallers);
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/NonOptimizedCallerTransformer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/NonOptimizedCallerTransformer.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/NonOptimizedCallerTransformer.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -64,7 +64,7 @@
String invocationClassName = PLACEHOLDER;
callerInfos.put(cd.callerInfoField, invocationClassName);
- callerInfoAdder.addMethodByConInfoField(callingClass, cd.callerInfoField, cd.callingIndex, cd.classname, cd.calledHash);
+ callerInfoAdder.addMethodByConInfoField(callingClass, cd.callerInfoField, callingClass.getName(), cd.callingIndex, cd.classname, cd.calledHash);
}
}
@@ -97,7 +97,7 @@
String invocationClassName = PLACEHOLDER;
callerInfos.put(cd.callerInfoField, invocationClassName);
- callerInfoAdder.addConByConInfoField(callingClass, cd.callerInfoField, cd.callingIndex, cd.classname, cd.calledHash);
+ callerInfoAdder.addConByConInfoField(callingClass, cd.callerInfoField, callingClass.getName(), cd.callingIndex, cd.classname, cd.calledHash);
}
}
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedCallerTransformer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedCallerTransformer.java 2007-07-20 18:15:16 UTC (rev 64166)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedCallerTransformer.java 2007-07-21 03:54:32 UTC (rev 64167)
@@ -63,7 +63,7 @@
String invocationClassName = OptimizedCallerInvocations.createOptimizedMethodCalledByConInvocationClass(instrumentor, createName, callingClass, cd.calledMethod, cd.callingIndex, cd.calledHash);
callerInfos.put(cd.callerInfoField, invocationClassName);
- callerInfoAdder.addMethodByConInfoField(callingClass, cd.callerInfoField, cd.callingIndex, cd.classname, cd.calledHash);
+ callerInfoAdder.addMethodByConInfoField(callingClass, cd.callerInfoField, callingClass.getName(), cd.callingIndex, cd.classname, cd.calledHash);
}
}
@@ -116,7 +116,7 @@
{
callerInfos.put(cd.callerInfoField, NonOptimizedCallerTransformer.PLACEHOLDER);
}
- callerInfoAdder.addConByConInfoField(callingClass, cd.callerInfoField, cd.callingIndex, cd.classname, cd.calledHash);
+ callerInfoAdder.addConByConInfoField(callingClass, cd.callerInfoField, callingClass.getName(), cd.callingIndex, cd.classname, cd.calledHash);
}
}
More information about the jboss-cvs-commits
mailing list