holodeck-b2b / Holodeck-B2B

Holodeck B2B is an AS4 system-to-system messaging solution that implements the OASIS specifications for ebMS3 and it's AS4 profile. For more information visit the project website
http://holodeck-b2b.org
GNU General Public License v3.0
68 stars 36 forks source link

Inconsistency in reception awareness #104

Closed sfieten closed 3 years ago

sfieten commented 4 years ago

When the current processing state of a User Messages is TRANSPORT_FAILURE it will be resent by RetransmissionWorker but when a Receipt is received for that same User Message it will not be processed by the ProcessReceipts handler and the message will stay in the TRANSPORT_FAILURE state. This can leave a User Message in "failed" state when the last resend of the message fails, even if a Receipt is later received (most likely to happen on large messages where a "read time-out" occurs because the receiver takes too long to process the message and send the Receipt).

Therefore the ProcessReceipts and RetransmissionWorker should use the same set of processing states to determine whether a message is or could be waiting for a receipt.