code: @Override
      public WsByteBuffer getRemainingData() {
  
          if (!isReadDataAvailable()) {
              return null;
          }
  
          WsByteBuffer retBuf = null;
  
          int position = getReadBuffer().position();
          int limit = getReadBuffer().limit();
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "Current body buffer " + getReadBuffer());
          }
  
          if (0 == position && limit == getReadBuffer().capacity()) {
              // this is a full buff we can return
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Return a full buffer");
              }
              retBuf = returnLastBuffer();
  
          } else {
              // slice up a return
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Slice the return buffer");
              }
              // slice from the position set above
              retBuf = getReadBuffer().slice();
  
          }
  
          return retBuf;
  
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.wsspi.http.channel.outbound.HttpOutboundServiceContext#getRemainingData()