private void validateSubsequentPause(
            final int idx,
            final Node request,
            final Node previous) {
        AbstractBody scr = sessionCreationResponse.get();
        if (scr == null) {
            // Not checking this
            return;
        }

        try {
            // Check the current node:
            AttrPause pause = AttrPause.createFromString(
                    request.getBody().getAttribute(Attributes.PAUSE));
            if (pause != null) {
                AttrMaxPause maxPause = AttrMaxPause.createFromString(
                        scr.getAttribute(Attributes.MAXPAUSE));
                assertNotNull("Request #" + idx + " can only use pause when "
                        + "advertized in session creation response", maxPause);
                assertTrue(pause.intValue() < maxPause.intValue());
            }

            // Check the previous node
            AttrPause prevPause = AttrPause.createFromString(
                    previous.getBody().getAttribute(Attributes.PAUSE));
            if (prevPause != null) {
                long delta = request.getTime() - previous.getTime();
                if (delta > prevPause.getInMilliseconds()) {
                    fail("Request #" + idx + " was sent too late relative to "
                        + "the previous pause message (delta=" + delta
                        + ", pause=" + prevPause.getInMilliseconds() + ")");
                }
            }
        } catch (BOSHException boshx) {
            fail("Could not parse pause/maxpause: " + boshx.getMessage());
        }
    }