[ 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)