private void maybeExecuteStatusesExchangedCallback(final PeerConnection newConnection) {
    synchronized (this) {
      if (newConnection.getStatusExchanged()) {
        if (!this.connection.equals(newConnection)) {
          if (readyForRequests.get()) {
            // We have two connections that are ready for requests, figure out which connection to
            // keep
            if (compareDuplicateConnections(this.connection, newConnection) > 0) {
              LOG.trace("Changed connection from {} to {}", this.connection, newConnection);
              this.connection = newConnection;
            }
          } else {
            // use the new connection for now, as it is ready for requests, which the "old" one is
            // not
            this.connection = newConnection;
          }
        }
        readyForRequests.set(true);
        final Consumer<EthPeer> peerConsumer = onStatusesExchanged.getAndSet(null);
        if (peerConsumer != null) {
          LOG.trace("Status message exchange successful. {}", this);
          peerConsumer.accept(this);
        }
      }
    }
  }
Attempt to get a request manager for a received response-type message e.g. BLOCK_HEADERS. If
the message is a request-type message e.g. GET_BLOCK_HEADERS no request manager will exist so
Optional.empty() will be returned.

@param protocolName the type of protocol the message is for
@param code the message code
@return a request manager for the received response message, or Optional.empty() if this is a
    request message
ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/EthPeer.java