Hi Gianluca, If you update to the latest version of commons lang, the issue goes away.
-James On Thu, Feb 19, 2026 at 6:02 AM Gianluca Sartori <[email protected]> wrote: > 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 >
