code: public static Buffer wrapAndClone(final byte[] buffer) {
          if (buffer == null || buffer.length == 0) {
              throw new IllegalArgumentException("the buffer cannot be null or empty");
          }
  
          final byte[] b = new byte[buffer.length];
          System.arraycopy(buffer, 0, b, 0, buffer.length);
          return new ByteBuffer(b);
      }
docs: Same as {@link #wrap(byte[])} but we will clone the byte array first.
  
  @param buffer
  @return