IT28401: DATAPOWER INCORRECTLY ESCAPES SEQUENCE OF 2 REVERSE SOLIDUS CHARACTERS USING DP:ENCODE(_, JSON-ESCAPE )
Closed as program error.
DataPower incorrectly escapes sequence of 2 reverse solidus characters using dp:encode(_, "json-escape"). Consequently store:///jsonx2json.xsl does the same incorrect escaping.
DataPower incorrectly escapes sequence of 2 reverse solidus characters using dp:encode(_, "json-escape"). The correct way to deal with reverse solidus in JSONX is to interpret it as the reverse solidus character. That would need to be escaped as "\\" in output of dp:encode(_, "json-escape"). Especially if a backend system returns "\\\\" as part of a JSON string to DataPower, it will become "\\" in JSONX by JSON response type, and would need to be escaped by dp:encode(_, "json-escape") as "\\\\" in JSON again.
Fix is available in 126.96.36.199 Back in 2015 that (correct) behavior was changed by APAR IT07570. Since then "\" was not just the reverse solidus character when appearing in JSONX, it had the same escaping functionality that it has in JSON, but in JSONX. So "\\" was interpreted as single reverse solidus character in JSONX, and dp:encode(_, "json-escape") keeps it as "\\" in JSON. Too many customer configurations as well as APIC depend on the behavior since 2015. New dp:encode(_, 'json-escape-reverse-solidus') provides the correct behavior. Please use either store:///jsonx2json.xsl or store:///jsonx2json-reverse-solidus.xsl, depending on which method of dealing with reverse solidus character in JSONX you want. For a list of the latest fix packs available, please see: http://www-01.ibm.com/support/docview.wss?uid=swg21237631
Reported component name
Reported component ID
NoSpecatt / Xsystem
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
Fixed component ID