RWF Error: "Success: Container was decoded from an empty payload."
Hi,
I’ve run into an interesting problem decoding an RWF message in UPAJ (v8). The message is a MAP, and when decoding, I get a non-success return error: NO_DATA (16) with the text:
Success: Container was decoded from an empty payload. The user should not try to decode any entries
My decoder logic is:
Map map = CodecFactory.createMap();
if ((retVal = map.decode(decodeIterator)) != CodecReturnCodes.SUCCESS)
{LOG.error(String.format("RWF Error %s (%d) encountered with DecodeMap. Error Text: %s. msgkey: %s", CodecReturnCodes.toString(retVal), retVal, CodecReturnCodes.info(retVal), msgkey), new Throwable()); return returnMap;
}
So for some reason, retVal is being returned as an error, but the error text indicates that there was no error.
The Data Analysis tool (DAS) seems to report that this is a bad RWF message, so I’m not sure if the actual source data is bad, or something weird is happening on the decode. If the data is good, it would seem like there is a bug in DAS, and that UPA doesn’t behave ideally - would expect the return to be success and then the map.containerType() to be set to NO_DATA. If the data is faulty, then UPA reporting an error with a msg of ‘Success’ is also not ideal.
Any thoughts?
Best Answer
-
CodecReturnCodes.NO_DATA (16) is still a kind of success code, because its value is greater than CodecReturnCodes.SUCCESS (0).
According to UPA Java Developer Guide (10.4 Return Code Values), "When using the Codec package, return codes greater than or equal to CodecReturnCodes.SUCCESS indicate some type of specific success code, while codes less than CodecReturnCodes.SUCCESS indicate some type of specific failure."
0
Answers
-
The NO_DATA return code is returned when you attempt to decode a container that has no length (normally bytes are present for the container’s header even if it is empty). In normal cases this is the result of attempting to decode the payload of an entry with a DELETE action, for example if you:
1) Decode a Map with containerType FIELD_LIST2) Decode a MapEntry (from that Map) whose action is DELETE.
3) You attempt to decode the FieldList anyway. ß This will result in NO_DATA being returned.
A DELETE action indicates the MapEntry has no payload, so you can skip step 3 above; either way, the next step should be to decode the next MapEntry. Check if this is what you are doing when you encounter it.
0
Categories
- All Categories
- 6 AHS
- 37 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛