if (calledClassesMap == null)
{
calledClassesMap = new HashMap<String, TLongObjectHashMap>();
methodCalledByMethodInterceptors.put(callingMethodHash, calledClassesMap);
}
TLongObjectHashMap calledMethodsMap = calledClassesMap.get(calledClass);
if (calledMethodsMap == null)
{
calledMethodsMap = new TLongObjectHashMap();
calledClassesMap.put(calledClass, calledMethodsMap);
}
//The standard MethodCalledByXXXXInvocation class calls by reflection and needs access
calledMethod.setAccessible(true);
// FIXME ClassLoader - how do we know the class is visible from the context classloader?
Class<?> calledClazz = SecurityActions.getContextClassLoader().loadClass(calledClass);
MethodByMethodInfo info = new MethodByMethodInfo(ClassAdvisor.this, calledClazz, calledMethod, callingMethod, callingMethodHash, calledMethodHash, null);
calledMethodsMap.put(calledMethodHash, info);
return info;
}