private void processResponseAcknowledgementData(
            final AbstractBody req) {
        assertLocked();
        
        Long rid = Long.parseLong(req.getAttribute(Attributes.RID));
        if (responseAck.equals(Long.valueOf(-1L))) {
            // This is the first request
            responseAck = rid;
        } else {
            pendingResponseAcks.add(rid);
            // Remove up until the first missing response (or end of queue)
            Long whileVal = Long.valueOf(responseAck.longValue() + 1);
            while (!pendingResponseAcks.isEmpty()
                    && whileVal.equals(pendingResponseAcks.first())) {
                responseAck = whileVal;
                pendingResponseAcks.remove(whileVal);
                whileVal = Long.valueOf(whileVal.longValue() + 1);
            }
        }
    }
private void processResponseAcknowledgementData ( final AbstractBody req ) { assertLocked ( ) ; Long rid = Long . parseLong ( req . getAttribute ( Attributes . RID ) ) ; if ( responseAck . equals ( Long . valueOf ( - 1L ) ) ) { responseAck = rid ; } else { pendingResponseAcks . add ( rid ) ; Long whileVal = Long . valueOf ( responseAck . longValue ( ) + 1 ) ; while ( ! pendingResponseAcks . isEmpty ( ) && whileVal . equals ( pendingResponseAcks . first ( ) ) ) { responseAck = whileVal ; pendingResponseAcks . remove ( whileVal ) ; whileVal = Long . valueOf ( whileVal . longValue ( ) + 1 ) ; } } }
Process the response in order to update the response acknowlegement
data.

This method assumes the lock is currently held.

@param req request