diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/form/FillableForm.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/form/FillableForm.java index 7e90c7711..b40cb92a8 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/form/FillableForm.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/form/FillableForm.java @@ -59,7 +59,13 @@ public class FillableForm extends FilledForm { if (formField.isRequired()) { String fieldName = formField.getFieldName(); requiredFields.add(fieldName); - missingRequiredFields.add(fieldName); + + if (formField.hasValueSet()) { + // This is a form field with a default value. + write(formField); + } else { + missingRequiredFields.add(fieldName); + } } } this.requiredFields = Collections.unmodifiableSet(requiredFields); @@ -224,9 +230,6 @@ public class FillableForm extends FilledForm { if (!getDataForm().hasField(fieldName)) { throw new IllegalArgumentException(); } - if (filledFields.containsKey(fieldName)) { - throw new IllegalArgumentException(); - } // Perform validation, e.g. using XEP-0122. // TODO: We could also perform list-* option validation, but this has to take xep122's into account.