Hi Stefan,
When I add listener with addEntryResizedListener(…) and delta is positive everything is fine, but if delta is negative there is an exception. This will certainly happen with other listeners.
I think problem is negative value of millis in json {"years":0,"months":0,"days":0,"milliseconds":-1800000}
Exception occurs in class org.vaadin.stefan.fullcalendar.Delta.java in method fromJson
fromJson(JsonObject jsonObject) {
...
// new 4.x way
if (jsonObject.hasKey("milliseconds")) {
long milliseconds = (long) jsonObject.getNumber("milliseconds");
LocalTime time = LocalTime.ofNanoOfDay(TimeUnit.MILLISECONDS.toNanos(milliseconds));
return new Delta(years, months, days, time.getHour(),time.getMinute(),time.getSecond());
}
...
}
Min value in ChronoField is 0
NANO_OF_DAY("NanoOfDay", ChronoUnit.NANOS, ChronoUnit.DAYS, ValueRange.of(0L, 86399999999999L))
Exception:
Caused by: java.time.DateTimeException: Invalid value for NanoOfDay (valid values 0 - 86399999999999): -1800000000000
at java.base/java.time.temporal.ValueRange.checkValidValue(ValueRange.java:311)
at java.base/java.time.temporal.ChronoField.checkValidValue(ChronoField.java:717)
at java.base/java.time.LocalTime.ofNanoOfDay(LocalTime.java:398)
at org.vaadin.stefan.fullcalendar.Delta.fromJson(Delta.java:64)
at org.vaadin.stefan.fullcalendar.EntryTimeChangedEvent.<init>(EntryTimeChangedEvent.java:39)
at org.vaadin.stefan.fullcalendar.EntryResizedEvent.<init>(EntryResizedEvent.java:42)
... 57 more
My config is:
- Plain Java Servlet
- calendar - 2.0.0.RC4
- vaadin - 14.0.11