docs: private WsByteBuffer getBuffer() {
          WsByteBuffer buffer = this._output[this.outputIndex];
          if (null == buffer) {
              buffer = getNewByteBuffer();
              buffer.clear();
              this._output[this.outputIndex] = buffer;
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "getBuffer, new buffer -->" + buffer + " ,outputIndex -->" + this.outputIndex);
              }
          } else if (!buffer.hasRemaining()) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "getBuffer, buffer  -->" + buffer + " ,outputIndex -->" + this.outputIndex + " ,outputLength -->" + this._output.length);
              }
              buffer.flip();
              this.outputIndex++;
              // next array spot may or may not exist from previous iterations
              if (null == this._output[this.outputIndex]) {
                  this._output[this.outputIndex] = getNewByteBuffer();
              }
              buffer = this._output[this.outputIndex];
              buffer.clear();
          }
          return buffer;
      }