Hi, When I add addEntryResizedListener(...) and delta is positive everythin

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

Should be fixed.

Hi Stefan,
Yes, it is. Thanks for your work. We appreciate it.