dgraham 2003/06/11 18:04:11
Modified: validator/src/share/org/apache/commons/validator Field.java
Log:
Fixed NPE in clone().
Revision Changes Path
1.19 +31 -26
jakarta-commons/validator/src/share/org/apache/commons/validator/Field.java
Index: Field.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/validator/src/share/org/apache/commons/validator/Field.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- Field.java 8 Jun 2003 06:03:16 -0000 1.18
+++ Field.java 12 Jun 2003 01:04:11 -0000 1.19
@@ -701,32 +701,37 @@
* Creates and returns a copy of this object.
*/
public Object clone() {
+ Field field = null;
try {
- Field field = (Field) super.clone();
-
- field.args = new Map[this.args.length];
- for (int i = 0; i < this.args.length; i++) {
- Map argMap = new HashMap(this.args[i]);
- Iterator iter = argMap.keySet().iterator();
- while (iter.hasNext()) {
- String validatorName = (String) iter.next();
- Arg arg = (Arg) argMap.get(validatorName);
- argMap.put(validatorName, arg.clone());
- }
- field.args[i] = argMap;
- }
-
- field.hVars = ValidatorUtils.copyFastHashMap(hVars);
- field.hMsgs = ValidatorUtils.copyFastHashMap(hMsgs);
- field.hArg0 = ValidatorUtils.copyFastHashMap(hArg0);
- field.hArg1 = ValidatorUtils.copyFastHashMap(hArg1);
- field.hArg2 = ValidatorUtils.copyFastHashMap(hArg2);
- field.hArg3 = ValidatorUtils.copyFastHashMap(hArg3);
-
- return field;
+ field = (Field) super.clone();
} catch (CloneNotSupportedException e) {
throw new InternalError(e.toString());
}
+
+ field.args = new Map[this.args.length];
+ for (int i = 0; i < this.args.length; i++) {
+ if (this.args[i] == null) {
+ continue;
+ }
+
+ Map argMap = new HashMap(this.args[i]);
+ Iterator iter = argMap.keySet().iterator();
+ while (iter.hasNext()) {
+ String validatorName = (String) iter.next();
+ Arg arg = (Arg) argMap.get(validatorName);
+ argMap.put(validatorName, arg.clone());
+ }
+ field.args[i] = argMap;
+ }
+
+ field.hVars = ValidatorUtils.copyFastHashMap(hVars);
+ field.hMsgs = ValidatorUtils.copyFastHashMap(hMsgs);
+ field.hArg0 = ValidatorUtils.copyFastHashMap(hArg0);
+ field.hArg1 = ValidatorUtils.copyFastHashMap(hArg1);
+ field.hArg2 = ValidatorUtils.copyFastHashMap(hArg2);
+ field.hArg3 = ValidatorUtils.copyFastHashMap(hArg3);
+
+ return field;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]