code: private Object readNewLongString(boolean unshared) throws IOException {
          long length = input.readLong();
          Object result = input.decodeUTF((int) length);
          if (enableResolve) {
              result = resolveObject(result);
          }
          registerObjectRead(result, nextHandle(), unshared);
  
          return result;
      }
docs: Read a new String in UTF format from the receiver. Return the string
  read.
  
  @param unshared
  read the object unshared
  @return the string just read.
  
  @throws IOException
  If an IO exception happened when reading the String.