DateSpinner3D -> Exception: java.lang.IllegalArgumentException - End day 31 before current day 31
fjosores opened this issue · comments
DateSpinner3D is not behaving correctly when start date is the 31st day of the month.
[EDT] 0:2:7,789 - Exception: java.lang.IllegalArgumentException - End day 31 before current day 31
java.lang.IllegalArgumentException: End day 31 before current day 31
at com.codename1.ui.spinner.DateSpinner3D.setCurrentDay(DateSpinner3D.java:443)
at com.codename1.ui.spinner.DateSpinner3D.setValue(DateSpinner3D.java:616)
at com.codename1.ui.spinner.Picker$1.createDatePicker3D(Picker.java:510)
at com.codename1.ui.spinner.Picker$1.showInteractionDialog(Picker.java:623)
at com.codename1.ui.spinner.Picker$1.actionPerformed(Picker.java:313)
at com.codename1.ui.util.EventDispatcher.fireActionEvent(EventDispatcher.java:349)
at com.codename1.ui.Button.fireActionEvent(Button.java:687)
at com.codename1.ui.Button.released(Button.java:728)
at com.codename1.ui.Button.pointerReleased(Button.java:835)
at com.codename1.ui.LeadUtil.pointerReleased(LeadUtil.java:153)
at com.codename1.ui.Form.pointerReleased(Form.java:3881)
at com.codename1.ui.Component.pointerReleased(Component.java:5265)
at com.codename1.ui.Display.handleEvent(Display.java:2409)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1285)
at com.codename1.ui.Display.mainEDTLoop(Display.java:1203)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
After comparing source code 7.0.75 and 7.0.113 constant endDay has changed from 32 to 31, without taking into account comparison (endDay -1 < currentDay).
To reproduce this you
PickerComponent gui_inputFechaNac = PickerComponent.createDate(new Date()).label("Fecha de nacimiento")
SimpleDateFormat sdf = new SimpleDateFormat(LepConstantes.DATE.DDMMYYYY);
Date hoy = Calendar.getInstance().getTime();
gui_inputFechaNac.getPicker().setFormatter(sdf);
try {
gui_inputFechaNac.getPicker().setStartDate(sdf.parse("01/01/1900"));
gui_inputFechaNac.getPicker().setEndDate(hoy);
gui_inputFechaNac.getPicker().setUseLightweightPopup(true);
} catch (ParseException e) {
handleException(e);
}
when date is 31st of July it causes a java.lang.IllegalArgumentException.