if (type == null) { log.trace("Could not find type for property '", name.getName(), "' of '", bean.getClass().getSimpleName(), "' probably because it's not ", "a property of the bean.  Skipping binding."); continue; }
    public ValidationErrors bind(ActionBean bean, ActionBeanContext context, boolean validate) {        ValidationErrors fieldErrors = new ValidationErrors();        // Take the ParameterMap and turn the keys into ParameterNames        Map<ParameterName,String[]> parameters = getParameters(context);        // Run the required validation first to catch fields that weren't even submitted        if (validate) {            validateRequiredFields(parameters, bean, fieldErrors);        }        // First we bind all the regular parameters        for (Map.Entry<ParameterName,String[]> entry : parameters.entrySet() ) {            List<Object> convertedValues = null;            ParameterName name = entry.getKey();            try {                if (!SPECIAL_KEYS.contains(name.getName()) && !name.getName().equals(context.getEventName())                        && !fieldErrors.containsKey(name.getName()) ) {                    log.trace("Running binding for property with name: ", name);                    Class type = OgnlUtil.getPropertyClass(name.getName(), bean);                    String[] values = entry.getValue();                    // Do Validation and type conversion                    List<ValidationError> errors = new ArrayList<ValidationError>();                    Validate validationInfo =                            this.validations.get(bean.getClass()).get(name.getStrippedName());                    // If the property should be ignored, skip to the next property                    if (validationInfo != null && validationInfo.ignore()) {                        continue;                    }                    if (validate && validationInfo != null) {                        doPreConversionValidations(name, values, validationInfo, errors);                    }                    convertedValues = convert(bean, name, values, type, validationInfo, errors);                    if (validate && validationInfo != null) {                        doPostConversionValidations(name, convertedValues, validationInfo, errors);                    }                    // If we have errors, save them, otherwise bind the parameter to the form                    if (errors.size() > 0) {                        fieldErrors.addAll(name.getName(), errors);                    }                    else if (convertedValues.size() > 0) {                        bindNonNullValue(bean, name.getName(), convertedValues, type);                    }                    else {                        bindNullValue(bean, name.getName(), type);                    }                }            }            catch (Exception e) {                handlePropertyBindingError(bean, name, convertedValues, e, fieldErrors);            }        }        bindMissingValuesAsNull(bean, context);        // Then we figure out if any files were uploaded and bind those too        StripesRequestWrapper request = StripesRequestWrapper.findStripesWrapper(context.getRequest());        if ( request.isMultipart() ) {            Enumeration<String> fileParameterNames = request.getFileParameterNames();            while (fileParameterNames.hasMoreElements()) {                String fileParameterName = fileParameterNames.nextElement();                FileBean fileBean = request.getFileParameterValue(fileParameterName);                log.trace("Attempting to bind file parameter with name [", fileParameterName,                          "] and value: ", fileBean);                if (fileBean != null) {                    try {                        bind(bean, fileParameterName, fileBean);                    }                    catch (Exception e) {                        log.debug(e, "Could not bind file property with name [", fileParameterName,                                  "] and value: ", fileBean);                    }                }            }        }        return fieldErrors;    }