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