@GuardedBy("connectionQueue")
    private void redeliver(@Nonnull final HttpConnection connection) throws HttpBindException, IOException, HttpConnectionClosedException
    {
        Log.debug("Session {} requesting a retransmission for rid {}", getStreamID(), connection.getRequestId());
        final Optional<Delivered> deliverable = retrieveDeliverable(connection.getRequestId());
        if (deliverable.isEmpty()) {
            Log.warn("Deliverable unavailable for {} in session {}", connection.getRequestId(), getStreamID());
            throw new HttpBindException("Unexpected RID error.", BoshBindingError.itemNotFound);
        }
        connection.deliverBody(asBodyText(deliverable.get().deliverables), true);
    }
Attempts to process a request for redelivery of data that was sent earlier.

This method is expected to be called with a connection that has a request ID that was already processed before.

If the data that was delivered in the earlier connection is still available, this will be delivered on this new
connection again. When the data is no longer available, an item-not-found error is generated.

@param connection The connection requesting a retransmission
@throws HttpConnectionClosedException if the connection was closed before a response could be delivered.
@throws HttpBindException if the connection has violated a facet of the HTTP binding protocol.
xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java