if (calledClassesMap == null)
{
calledClassesMap = new HashMap<String, TLongObjectHashMap>();
methodCalledByConInterceptors[callingIndex] = 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
SecurityActions.setAccessible(calledMethod);
// FIXME ClassLoader - how do we know the class is visible from the context classloader?
Class<?> calledClazz = SecurityActions.getContextClassLoader().loadClass(calledClass);
MethodByConInfo info = new MethodByConInfo(this, calledClazz, callingClass, callingIndex, calledMethod, calledMethodHash, null);
calledMethodsMap.put(calledMethodHash, info);
return info;
}