code: protected void increaseEncryptedBuffer() throws IOException {
          final int packetSize = getConnLink().getPacketBufferSize();
          if (null == this.encryptedAppBuffer) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                  Tr.event(tc, "Allocating encryptedAppBuffer, size=" + packetSize);
              }
              this.encryptedAppBuffer = SSLUtils.allocateByteBuffer(
                                                                    packetSize, getConfig().getEncryptBuffersDirect());
          } else {
              // The existing buffer isn't big enough, add another packet size to it
              final int cap = this.encryptedAppBuffer.capacity();
              final int newsize = cap + packetSize;
              if (0 > newsize) {
                  // wrapped over max-int
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                      Tr.event(tc, "Unable to increase encrypted buffer beyond " + cap);
                  }
                  throw new IOException("Unable to increase buffer beyond " + cap);
              }
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Increasing encryptedAppBuffer to " + newsize);
              }
              WsByteBuffer temp = SSLUtils.allocateByteBuffer(
                                                              newsize, this.encryptedAppBuffer.isDirect());
              this.encryptedAppBuffer.flip();
              SSLUtils.copyBuffer(this.encryptedAppBuffer, temp, this.encryptedAppBuffer.remaining());
              this.encryptedAppBuffer.release();
              this.encryptedAppBuffer = temp;
          }
      }
docs: Reuse the buffers used to send data out to the network. If existing buffer
  is available, grow the array by one.
  
  @throws IOException - if allocation failed