Author: kinow Date: Tue Nov 21 09:48:03 2017 New Revision: 1815895 URL: http://svn.apache.org/viewvc?rev=1815895&view=rev Log: VALIDATOR-434 synchronize when iterating a list created with Collections.synchronizedList, as per javadocs. Thanks to GitHub user @emopers!
This closes #4 Modified: commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java Modified: commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java?rev=1815895&r1=1815894&r2=1815895&view=diff ============================================================================== --- commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java (original) +++ commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java Tue Nov 21 09:48:03 2017 @@ -907,22 +907,24 @@ public class Field implements Cloneable, for (int fieldNumber = 0; fieldNumber < numberOfFieldsToValidate; fieldNumber++) { - Iterator<String> dependencies = this.dependencyList.iterator(); ValidatorResults results = new ValidatorResults(); - while (dependencies.hasNext()) { - String depend = dependencies.next(); + synchronized(dependencyList) { + Iterator<String> dependencies = this.dependencyList.iterator(); + while (dependencies.hasNext()) { + String depend = dependencies.next(); - ValidatorAction action = actions.get(depend); - if (action == null) { - this.handleMissingAction(depend); - } + ValidatorAction action = actions.get(depend); + if (action == null) { + this.handleMissingAction(depend); + } - boolean good = - validateForRule(action, results, actions, params, fieldNumber); + boolean good = + validateForRule(action, results, actions, params, fieldNumber); - if (!good) { - allResults.merge(results); - return allResults; + if (!good) { + allResults.merge(results); + return allResults; + } } } allResults.merge(results);