You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
det/facade: a RETURN TRANSID COMMAREA crosses to the next task as its DTO only -- a numeric field holding spaces comes back as digits #4817
Found while fixing #4806 (a LINK / XCTL COMMAREA through a DTO lost bytes the DTO cannot decode; that fix passes the bytes beside the DTO, so a det program takes them as they are).
Gap. A level-1 RETURN TRANSID ... COMMAREA still carries the COMMAREA as the DTO only (CicsTask.returnTransid -> returnedArea -> returned(type) / the facade's handleTransaction answer, #4343 / #4449). A field the DTO cannot decode -- a numeric DISPLAY field holding spaces, as CBSA's front ends leave in their RETURN COMMAREA -- is read as a number (spaces: -16) and, when the next request brings that DTO back, the next task's DFHCOMMAREA holds digits where the previous task left spaces.
IBM. RETURN TRANSID COMMAREA passes the bytes to the next task of the pseudo-conversation (a copy); every byte arrives as it was, invalid numeric content included.
Scope. The equivalence harness does not observe it: each scenario gives its own COMMAREA (the RETURN's is compared as an event). It is the deployed region / facade path. Related: #4695 (the facade gets byte[] for a RETURN LENGTH past the DTO).
Done when. The deployed pseudo-conversation keeps the bytes (e.g. a byte-carrying COMMAREA beside the DTO, or the DTO keeping the bytes it cannot decode), or such a COMMAREA is refused by name at the facade, never silently changed.
Related: #4085 (carddemo-cardupdate: COCRDUPC's RETURN COMMAREA leaves blanks in a PIC 9(3) CVV that the typed DTO cannot hold; still the only unproven case of the #4806 sweep, as baselined). That issue is the compared RETURN event; this one is the deployed next task that gets the DTO back.
Acceptance met: the byte-carrying path (#4871, byte overload of handleTransaction) keeps RETURN COMMAREA bytes, and #5328 makes the DTO-only answer refuse by name when the DTO would silently change a byte. Both arms of 'Done when' hold. Remaining sibling (#5060 model-port String/number XCTL) is tracked separately.
Activity
squid-protocol commentedon Oct 9, 2026
Related: #4085 (carddemo-cardupdate: COCRDUPC's RETURN COMMAREA leaves blanks in a PIC 9(3) CVV that the typed DTO cannot hold; still the only unproven case of the #4806 sweep, as baselined). That issue is the compared RETURN event; this one is the deployed next task that gets the DTO back.
det: RETURN TRANSID COMMAREA carries its bytes to the next task (Part…
det: a RETURN / XCTL COMMAREA passes LENGTH bytes; the byte[] answer …
det facade: a DTO-only answer of a RETURN COMMAREA refuses bytes the …
squid-protocol commentedon Oct 17, 2026
Acceptance met: the byte-carrying path (#4871, byte overload of handleTransaction) keeps RETURN COMMAREA bytes, and #5328 makes the DTO-only answer refuse by name when the DTO would silently change a byte. Both arms of 'Done when' hold. Remaining sibling (#5060 model-port String/number XCTL) is tracked separately.