protected Class getRealType(ActionBean bean, Class propertyType, ParameterName propertyName) { Validate validationInfo = this.validations.get(bean.getClass()).get(propertyName.getStrippedName());
protected Class getRealType(ActionBean bean, Class propertyType, ParameterName propertyName) throws Exception {
    protected Class getRealType(ActionBean bean, Class propertyType, ParameterName propertyName) {        Validate validationInfo = this.validations.get(bean.getClass()).get(propertyName.getStrippedName());        if (propertyType.isArray()) {            propertyType = propertyType.getComponentType();        }        else if (propertyType.isAssignableFrom(Collection.class)) {            if (validationInfo != null && validationInfo.converter() != TypeConverter.class) {                TypeVariable[] types = validationInfo.converter().getTypeParameters();                propertyType = (Class) types[0].getBounds()[0];            } else {                propertyType = String.class;            }        }        return propertyType;    }