I am using Local date in my Cuba app but getting unsupported exception as follows:
java.lang.UnsupportedOperationException
at java.sql.Date.toInstant(Date.java:304)
at com.company.web.ls.leaveapplication.LeaveApplicationEdit.handleRangeSelect(LeaveApplicationEdit.java:110)
at com.company.web.ls.leaveapplication.LeaveApplicationEdit.lambda$postInit$2(LeaveApplicationEdit.java:82)
at com.haulmont.bali.events.EventRouter.fireEvent(EventRouter.java:45)
at com.haulmont.cuba.gui.data.impl.AbstractDatasource$ItemListener.propertyChanged(AbstractDatasource.java:307)
at com.haulmont.chile.core.model.impl.AbstractInstance.propertyChanged(AbstractInstance.java:51)
my code that is causing this exception:
LocalDate start = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate end = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
Here is my complete code in case you want to have a look
if(getItem().getStartDate() !=null && getItem().getEndDate() !=null) {
BigDecimal dailyHours = leaveApplicationDs.getItem().getLeaveType().getHoursPerDay();
long diff = getItem().getEndDate().getTime() - getItem().getStartDate().getTime();
long totalDays = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS) + 1;
getItem().setTotalHours(dailyHours.multiply(BigDecimal.valueOf(totalDays)));
//load composition Entities
LocalDate start = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate end = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
if (leaveApplicationLineDs.size() > 0)
leaveApplicationLineDs.clear();
for (LocalDate date = start; date.isEqual(end); date = date.plusDays(1)) {
//System.out.println(date);
LeaveApplicationLine line = metadata.create(LeaveApplicationLine.class);
Date date2 = Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
line.setLeaveDate(date2);
line.setHours(dailyHours);
line.setLeaveApplication(getItem());
leaveApplicationLineDs.addItem(line);
}
}
Is this not supported by CUBA Framework?