tracker issue : CF-4204012

select a category, or use search below
(searches all categories and all time range)

CF2018 Deserializing Daylight Aving Time Dates

| View in Tracker

Status/Resolution/Reason: Closed/Withdrawn/Workaround

Reporter/Name(from Bugbase): DENNIS F. / ()

Created: 02/08/2019

Components: Flex/Flash, Flex remoting

Versions: 2016

Failure Type: Crash

Found In Build/Fixed In Build: ColdFusion 2018 Update 1 2018,0,01,311402 /

Priority/Frequency: Normal / All users will encounter

Locale/System: English / Win 2012 Server x64

Vote Count: 0

Problem Description: When sending complex objects from Flex to CF 2018, and the complex object contains a Date type, and the date value of the member is in Daylight Saving Time, then a "coldfusion.runtime.locale.CFLocaleBase$InvalidDateTimeException" is thrown for "invalid date or time string" from [BlazeDS] .

Steps to Reproduce: Use Flex and CF 2018. 
ColdFusion 2018: Have a CFC with a function which has one parameter of type "Any", parameter is required, and function having access="REMOTE". 
Flash Builder / Eclipse: In a Flex application, create an object type with one member of type Date. Set the Date member of the object to a date in July, which is within US Daylight Saving Time. Call the CF function using RemoteObject. 
ColdFusion 2018: In the CF function, read the parameter and member variable and return the string value to the caller of the function. 
Flash Builder: Eclipse: Run the web page and call the function using a mapped RemoteObject.

See for fully fleshed example. The ZIP file contains an Eclipse / Flash Builder project. The server-side code is in the sub folder named "ADDITIONAL" --> remotingDateTest. Logs of the error, screen shot of a proxy took perusal of the AMF messages, and server Java settings are in the sub folder ADDITIONAL --> README.

Actual Result: Error is thrown for DST dates, saying "[BlazeDS] Error deserializing client message.
coldfusion.runtime.locale.CFLocaleBase$InvalidDateTimeException: July 8, 2016 6:00:00 PM EDT is an invalid date or time string." Error is Not thrown when date is not with Daylight Saving Time.

Expected Result: No error is thrown 

Any Workarounds: Convert all DST dates to strings before sending to CF.



I am guessing this is related to the Java 10 (Java 9+) issue with parsing three character time zones by CLDR. Even having the switch -Djava.locale.providers=COMPAT,SPI in JVM settings does not resolve the issue. Perhaps BlazeDS is not referencing that JVM or is processing differently ... ?
Comment by DENNIS F.
30214 | February 08, 2019 06:21:24 PM GMT
This was resolved. Thanks to Priyank Shrivastava for providing the following java jvm argument: -Duser.timezone=NewYork
Comment by DENNIS F.
30262 | February 15, 2019 07:33:15 PM GMT