code: final SendFrameHeader getFrameHeader() throws IOException {
          if (header == null) {
              header = createFrameHeader();
              if (header == null) {
                  header = new SendFrameHeader(0, null);
              }
          }
          return header;
      }
docs: Returns the header for the current frame.
  
  This consists of the frame data, and also an integer specifying how much data is remaining in the buffer.
  If this is non-zero then this method must adjust the buffers limit accordingly.
  
  It is expected that this will be used when limits on the size of a data frame prevent the whole buffer from
  being sent at once.
  
  
  @return The header for the current frame, or null