After updating to new version Lucee our app blew up wherever it had a struct with a timestamp created with now()
that was serialized to JSON and then deserialized to be used again as a datetime.
It seems that whenever a negative offset was added during the serializeJSON()
call (a positive offset still works), Lucee would throw an error saying it could not be used as a date.
To reproduce:
dump( { "Java version" : server.java.version, "Lucee version" : server.lucee.version } );
for( i=0; i <= 9; i++ ){
dump( eval='isDate( "February, 28 2025 17:24:40 -0#i#00" )' );
}
On 6.1, using the same Java verson, each isDate()
call results in true
whereas in 6.2, they all result in false
:
I’ll note that adding the -Djava.locale.providers=COMPAT
has no effect.