@Test(timeout=3000)
    public void maxRequestsPlusTerminate() throws Exception {
        logTestStart();

        // Initiate a new session, accepting 2 concurrent connections
        session.send(ComposableBody.builder().build());
        StubConnection conn = cm.awaitConnection();
        final AbstractBody scr = getSessionCreationResponse(conn.getRequest().getBody())
                .setAttribute(Attributes.WAIT, "1")
                .setAttribute(Attributes.REQUESTS, "2")
                .build();
        conn.sendResponse(scr);
        session.drain();
        CMSessionParams params = session.getCMSessionParams();
        assertNotNull(params);

        // Establish the max number of connections
        final ComposableBody resp = ComposableBody.builder()
            .setAttribute(Attributes.SID, scr.getAttribute(Attributes.SID))
            .build();

        List<StubConnection> outstanding = new ArrayList<StubConnection>();
        for (int i=0; i<params.getRequests().intValue(); i++) {
            session.send(ComposableBody.builder().build());
            outstanding.add(cm.awaitConnection());
        }

        // Now send a session termination.  This shouldn't block.
        session.disconnect();

        // Cleanup
        for (StubConnection connection : outstanding) {
            connection.sendResponse(resp);
        }

        assertValidators(scr);
    }