code: public void setShortVec(CharBuffer data)
      {
          if (data == null)
          {
              throw new IllegalArgumentException("Input data for indices cannot be null");
          }
          if (getIndexSize() != 2)
          {
              throw new UnsupportedOperationException("Cannot update integer indices with char array");
          }
          if (data.isDirect())
          {
              if (!NativeIndexBuffer.setShortVec(getNative(), data))
              {
                  throw new UnsupportedOperationException("Input buffer is wrong size");
              }
          }
          else if (data.hasArray())
          {
              if (!NativeIndexBuffer.setShortArray(getNative(), data.array()))
              {
                  throw new UnsupportedOperationException("Input buffer is wrong size");
              }
          }
          else
          {
              throw new UnsupportedOperationException(
                      "CharBuffer type not supported. Must be direct or have backing array");
          }
      }
docs: Updates the indices in the index buffer from a Java CharBuffer.
  All of the entries of the input buffer are copied into
  the storage for the index buffer. The new indices must be the
  same size as the old indices - the index buffer size cannot be changed.
  @param data CharBuffer containing the new values
  @throws IllegalArgumentException if char array is wrong size