Title:
[ANeff] Bug for: CF11+ broke deserialization of WDDX'd timestamp query columns
| View in TrackerStatus/Resolution/Reason: Closed/Fixed/
Reporter/Name(from Bugbase): Aaron Neff / Aaron Neff (Aaron Neff)
Created: 05/28/2016
Components: Language, Serialization
Versions: 11.0
Failure Type: Data Loss
Found In Build/Fixed In Build: CF2016_FInal /
Priority/Frequency: Critical / Some users will encounter
Locale/System: English / Platforms All
Vote Count: 0
CF11+ broke deserialization of WDDX'd timestamp query columns
Steps to reproduce:
1) Run this code in CF10, CF11 and CF2016:
<cfset q1 = queryNew("myColumn", "timestamp", [[createDateTime(2016,5,28,1,2,3)]])>
<cfwddx action="cfml2wddx" input="#q1#" output="qWDDX">
<cfwddx action="wddx2cfml" input="#qWDDX#" output="q2">
<cfset queryAddRow(q2, [[createDateTime(2016,5,28,2,3,4)]])>
<cfdump var="#q2#">
Actual result: CF10 displays time portion for both timestamps. CF11 and CF2016 display time portion for 1st timestamp but trim time portion off 2nd timestamp.
Expected result: Time portion should always be displayed for "timestamp"
Notes:
1) wddx2cfml deserializes <dateTime> to "date" column type
2) pre-CF11 "date" column type also held time information
3) In CF11+, "date" column type trims time information, due to new stricter validation (see 3929913)
Suggestions:
1) wddx2cfml should deserialize <dateTime> to "timestamp" column type
Note: You might then be tempted to also change cfml2wddx to serialize "date" column type as <date> and "time" column type as <time>. However, that would need to be documented b/c it would break code that expected pre-CF11's behavior wherein "date" column type also held time information. Pre-CF11 code used "date" column type b/c "timestamp" wasn't documented until Sept 29, 2015 (per 4064813).
----------------------------- Additional Watson Details -----------------------------
Watson Bug ID: 4158658
External Customer Info:
External Company:
External Customer Name: Aaron Neff
External Customer Email:
Attachments:
Comments: