code: public final String getString(String charsetName) {
          if (position >= origin + limit) throw new IllegalArgumentException("limit excceed: " + position);
  
          byte[] buf = buffer;
          final int len = (0xff & buf[position]);
          if (position + len + 1 > origin + limit) throw new IllegalArgumentException("limit excceed: "
                                                                                      + (position + len + 1 - origin));
  
          try {
              String string = new String(buf, position + 1, len, charsetName);
              position += len + 1;
              return string;
          } catch (UnsupportedEncodingException e) {
              throw new IllegalArgumentException("Unsupported encoding: " + charsetName, e);
          }
      }
docs: Return next dynamic length string from buffer.