MethodInfo mi = getMethodInfo(env, objRef);
ThreadInfo ti = env.getThreadInfo();
- ClassInfo ci = ClassLoaderInfo.getCurrentResolvedClassInfo(mi.getReturnTypeName());
- if (!ci.isRegistered()) {
- ci.registerClass(ti);
+ String returnTypeName = mi.getGenericReturnTypeName();
+ int retRef;
+ if (Types.isGenericSignature(returnTypeName)) {
+ retRef = getParameterizedTypeImplObj(returnTypeName, env);
+ } else {
+ ClassInfo ci = ClassLoaderInfo.getCurrentResolvedClassInfo(returnTypeName);
+ if (!ci.isRegistered()) {
+ ci.registerClass(ti);
+ }
+ retRef = ci.getClassObjectRef();
}
- return ci.getClassObjectRef();
+ return retRef;
}
// TODO: Fix for Groovy's model-checking
// TODO: We have been able to only register the generic class and not yet the parameterized types