Hi folks, I’ve noticed that when starting my Grails 7 applications with Java 25, my console is flooded with warnings like:
WARNING: Use of the three-letter time zone ID "EST" is deprecated and it will be removed in a future release WARNING: Use of the three-letter time zone ID "PST" is deprecated and it will be removed in a future release ... After investigation, I traced the cause using a debugger and stack traces. The root cause is *Apache Commons Lang’s FastDateFormat / FastDateParser*, specifically when used by *Grails’ DateMarshaller for XML*. Stack trace highlights: at java.util.TimeZone.getTimeZone(TimeZone.java:549) at org.apache.commons.lang3.time.FastDateParser$TimeZoneStrategy.<init>(FastDateParser.java:531) ... at org.grails.web.converters.marshaller.xml.DateMarshaller.<init>(DateMarshaller.java:51) Explanation - FastDateParser internally maps *all three-letter short time zone IDs* (like PST, EST, MST) for legacy support. - Modern JVMs (Java 17+) *deprecate these short IDs*, so every mapping triggers a warning. - The warnings appear *at startup*, during Grails XML marshaller initialization, even if your code does not explicitly use those short IDs. This is why a clean Grails 7 application does *not* show the warnings — the marshaller is not invoked until needed. In projects that use DateMarshaller for XML/JSON, the warnings are printed immediately at startup. *---* *DISCLAIMER: I'm using AI to recap the issue but I've properly done the investigation debugging java.util.TimeZone setting breakpoints at line 549 & 562.---* It looks like a problem with org.grails.web.converters.marshaller.xml.DateMarshaller in Java 25,is anyone else experiencing this? Cheers, Gianluca Gianluca Sartori -- https://dueuno.com
