You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ki...@apache.org on 2017/11/21 09:48:03 UTC
svn commit: r1815895 -
/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/Field.java
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);