shouldn't this:
public void updateModel() {
dateField.updateModel();
hoursField.updateModel();
minutesField.updateModel();
amOrPmChoice.updateModel();
if (date != null) {
try {
TimeZone zone = getClientTimeZone();
if (zone != null) {
date.setZone(DateTimeZone.forTimeZone(zone));
}
if (hours != null) {
date.set(DateTimeFieldType.hourOfHalfday(), hours
.intValue());
date.setMinuteOfHour((minutes != null) ?
minutes.intValue()
: 0);
}
if (amOrPm == AM_PM.PM) {
date.set(DateTimeFieldType.halfdayOfDay(), 1);
} else {
date.set(DateTimeFieldType.halfdayOfDay(), 0);
}
} catch (RuntimeException e) {
DateTimeField.this.error(e.getMessage());
invalid();
}
// the date will be in the server's timezone
Date d = date.toDate();
setModelObject(d);
} else {
setModelObject(null);
}
}
be this:
public void updateModel() {
dateField.updateModel();
hoursField.updateModel();
minutesField.updateModel();
amOrPmChoice.updateModel();
if (date != null) {
try {
TimeZone zone = getClientTimeZone();
if (zone != null) {
date.setZone(DateTimeZone.forTimeZone(zone));
}
if (hours != null) {
date.set(DateTimeFieldType.hourOfHalfday(), hours
.intValue());
date.setMinuteOfHour((minutes != null) ?
minutes.intValue()
: 0);
}
if (amOrPm == AM_PM.PM) {
date.set(DateTimeFieldType.halfdayOfDay(), 1);
} else {
date.set(DateTimeFieldType.halfdayOfDay(), 0);
}
// the date will be in the server's timezone
Date d = date.toDate();
setModelObject(d);
} catch (RuntimeException e) {
DateTimeField.this.error(e.getMessage());
invalid();
}
} else {
setModelObject(null);
}
}
So only set the model object to the date if there is no exception?