org_apache_struts2_oval_interceptor_OValValidationInterceptorTest_java
ognl.OgnlRuntime
public static Method getAppropriateMethod(OgnlContext context, Object source, Object target, String propertyName, String methodName, List methods, Object[] args, Object[] actualArgs) {
        Method result = null;
        if (methods != null) {
            Class[] argClasses;
            MatchingMethod mm;
            Class typeClass;
            Class clazz = typeClass = target != null ? target.getClass() : null;
            if (typeClass == null && source != null && Class.class.isInstance(source)) {
                typeClass = (Class)source;
            }
            if ((mm = OgnlRuntime.findBestMethod(methods, typeClass, methodName, argClasses = OgnlRuntime.getArgClasses(args))) != null) {
                result = mm.mMethod;
                Class[] mParameterTypes = mm.mParameterTypes;
                System.arraycopy(args, 0, actualArgs, 0, args.length);
                if (actualArgs.length > 0) {
                    for (int j = 0; j < mParameterTypes.length; ++j) {
                        Class type = mParameterTypes[j];
                        if (!mm.report.conversionNeeded[j] && (!type.isPrimitive() || actualArgs[j] != null)) continue;
                        actualArgs[j] = OgnlRuntime.getConvertedType(context, source, result, propertyName, args[j], type);
                    }
                }
            }
        }
        if (result == null) {
            result = OgnlRuntime.getConvertedMethodAndArgs(context, target, propertyName, methods, args, actualArgs);
        }
        return result;
    }
 -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.getSuperclass(): java.lang.Class -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.lang.reflect.Method.getGenericParameterTypes(): java.lang.reflect.Type[] -> java.lang.Class.isInstance(java.lang.Object): boolean -> java.lang.reflect.Method.isVarArgs(): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.Class.isPrimitive(): boolean
 [CALL] -> java.lang.Object.getClass(): java.lang.Class [CALL] [CALL] -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.getSuperclass(): java.lang.Class [EXIT] [EXIT] [CALL] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] -> java.lang.reflect.Method.getGenericParameterTypes(): java.lang.reflect.Type[] -> java.lang.Class.isInstance(java.lang.Object): boolean [EXIT] [CALL] -> java.lang.reflect.Method.isVarArgs(): boolean [CALL] [EXIT] [CALL] [EXIT] [EXIT] -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean [CALL] [CALL] [EXIT] [EXIT] [EXIT] -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.Class.isPrimitive(): boolean [EXIT]