public ResponseStream then(final ResponseCallback callback) {
      if (responseCallback != null) {
        // For now just manage a single callback for simplicity.  We could expand this to support
        // multiple listeners in the future.
        throw new IllegalStateException("Response streams expect only a single callback");
      }
      responseCallback = callback;
      dispatchBufferedResponses();
      return this;
    }
Process a potential message response

@param streamClosed True if the ResponseStream is being shut down and will no longer deliver
    messages.
@param message the message to be processed
@param peer the peer that owns this response stream
ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/RequestManager.java