[
https://issues.apache.org/jira/browse/VALIDATOR-245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sebb resolved VALIDATOR-245.
----------------------------
Resolution: Duplicate
> Not all of the indexedListProperty collection elements are validated
> --------------------------------------------------------------------
>
> Key: VALIDATOR-245
> URL: https://issues.apache.org/jira/browse/VALIDATOR-245
> Project: Commons Validator
> Issue Type: Improvement
> Components: Framework
> Affects Versions: 1.3.0 Release, 1.3.1 Release
> Reporter: Edmund Ward
> Priority: Minor
>
> When the Field class method "validate(Map params, Map actions)" validates an
> indexedListProperty it will return as soon as it finds an element in the
> collection that fails validation. If other fields in the collection are
> invalid too the user will only find out once they have corrected the first
> invalid field. If the method were to validate all the fields in the
> collection (which it will do anyway when all the elements are valid) the user
> would find all the invalid fields the first time the bean is validated.
> My proposed modification involves simply commenting out a couple of lines in
> the Field class method "validate(Map params, Map actions)"
> eg.
> public ValidatorResults validate(Map params, Map actions)
> throws ValidatorException {
>
> if (this.getDepends() == null) {
> return new ValidatorResults();
> }
> ValidatorResults allResults = new ValidatorResults();
> Object bean = params.get(Validator.BEAN_PARAM);
> int numberOfFieldsToValidate =
> this.isIndexed() ? this.getIndexedPropertySize(bean) : 1;
> for (int fieldNumber = 0; fieldNumber < numberOfFieldsToValidate;
> fieldNumber++) {
>
> Iterator dependencies = this.dependencyList.iterator();
> ValidatorResults results = new ValidatorResults();
> while (dependencies.hasNext()) {
> String depend = (String) dependencies.next();
> ValidatorAction action = (ValidatorAction) actions.get(depend);
> if (action == null) {
> this.handleMissingAction(depend);
> }
> boolean good =
> validateForRule(action, results, actions, params,
> fieldNumber);
> if (!good) {
> allResults.merge(results);
> //return allResults;
> }
> }
> //allResults.merge(results);
> }
>
> return allResults;
> }
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)