docs: public String readUTF8EncodedString(int stringLength) {
          if (stringLength > 0 && this.bufferPosition + stringLength <= this.bufferData.length) {
              this.bufferPosition += stringLength;
              try {
                  return new String(this.bufferData, this.bufferPosition - stringLength, stringLength, CHARSET_UTF8);
              } catch (UnsupportedEncodingException e) {
                  throw new IllegalStateException(e);
              }
          }
          LOGGER.warning("invalid string length: " + stringLength);
          return null;
      }