- // Sanity-check logical sequence, ignore any out-of-order messages
- if (request.getSequence() != response.getSequence()) {
- LOG.debug("Expecting sequence {}, ignoring response {}", request.getSequence(), envelope);
- return Optional.empty();
- }
-
- // Check if the entry has (ever) been transmitted
- if (!(e instanceof TransmittedConnectionEntry)) {
- return Optional.empty();
- }
-
- final TransmittedConnectionEntry te = (TransmittedConnectionEntry) e;
-
- // Now check session match
- if (envelope.getSessionId() != te.getSessionId()) {
- LOG.debug("Expecting session {}, ignoring response {}", te.getSessionId(), envelope);
- return Optional.empty();
- }
- if (envelope.getTxSequence() != te.getTxSequence()) {
- LOG.warn("Expecting txSequence {}, ignoring response {}", te.getTxSequence(), envelope);
- return Optional.empty();
- }
-
- LOG.debug("Completing request {} with {}", request, envelope);
- it.remove();
- return Optional.of(te);
+ if (maybeEntry.isPresent()) {
+ final TransmittedConnectionEntry entry = maybeEntry.get();
+ LOG.debug("Completing {} with {}", entry, envelope);
+ entry.complete(envelope.getMessage());