code: static public WsByteBuffer[] putInt(WsByteBuffer[] buffers, int value, BNFHeadersImpl bnfObj) {
          // verify input buffer information
          if (null == buffers) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Null buffers sent to putInt");
              }
              return null;
          }
  
          // Last buffer
          WsByteBuffer buffer = buffers[buffers.length - 1];
          byte[] data = asBytes(value);
  
          try {
              buffer.put(data);
          } catch (BufferOverflowException boe) {
              // no FFDC required
              // use existing method to put what bytes we can, allocate a new
              // buffer and put the rest
              return putByteArrayKnownOverflow(buffers, data, bnfObj);
          }
  
          return buffers;
      }
docs: Given a wsbb[], we're adding a int value to the <b>last</b> buffer. If
  that buffer fills up, then we will allocate a new one, by expanding
  the last WsByteBuffer in wsbb[].
  <p>
  Returns the new wsbb[] (expanded if needed).
  
  @param buffers
  @param value
  @param bnfObj
  @return WsByteBuffer[]