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

Reply via email to