@Override
    public WsByteBuffer[] getResponseBodyBuffers() throws IOException, IllegalHttpBodyException {

        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
            Tr.entry(tc, "getResponseBodyBuffers(sync)");
        }

        if (!checkBodyValidity()) {
            if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
                Tr.exit(tc, "getResponseBodyBuffers(sync): No body allowed");
            }
            return null;
        }

        setMultiRead(true);

        // read the buffers
        if (!isBodyComplete()) {
            try {
                readBodyBuffers(getResponseImpl(), false);
            } catch (BodyCompleteException e) {
                // no FFDC required
                if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
                    Tr.exit(tc, "getResponseBodyBuffers(sync): BodyCompleteException");
                }
                return null;
            } catch (IllegalHttpBodyException ihe) {
                // no FFDC required
                // not possible with response messages
                if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                    Tr.debug(tc, "Unexpected exception: " + ihe);
                }
            }
        }
        WsByteBuffer[] buffers = getAllStorageBuffers();
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
            Tr.exit(tc, "getResponseBodyBuffers(sync): " + ((null == buffers) ? 0 : buffers.length));
        }
        return buffers;
    }
@ Override public WsByteBuffer [ ] getResponseBodyBuffers ( ) throws IOException , IllegalHttpBodyException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . entry ( tc , "getResponseBodyBuffers(sync)" ) ; } if ( ! checkBodyValidity ( ) ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . exit ( tc , "getResponseBodyBuffers(sync): No body allowed" ) ; } return null ; } setMultiRead ( true ) ; if ( ! isBodyComplete ( ) ) { try { readBodyBuffers ( getResponseImpl ( ) , false ) ; } catch ( BodyCompleteException e ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . exit ( tc , "getResponseBodyBuffers(sync): BodyCompleteException" ) ; } return null ; } catch ( IllegalHttpBodyException ihe ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Unexpected exception: " + ihe ) ; } } } WsByteBuffer [ ] buffers = getAllStorageBuffers ( ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . exit ( tc , "getResponseBodyBuffers(sync): " + ( ( null == buffers ) ? 0 : buffers . length ) ) ; } return buffers ; }
Get all of the remaining body buffers for the response synchronously.
If the body is encoded or compressed, then that is removed and
unencoded buffers returned.
<p>
A null response means that there is no body left to read.
<p>
Once given a buffer, we keep no record of that buffer. It is the users responsibility to release it.

@return WsByteBuffer[]
@throws IOException
-- if a socket exceptions happens
@throws IllegalHttpBodyException
-- if the body was malformed