docs: void serializeNode(OutputArchive oa, StringBuilder path) throws IOException {
          String pathString = path.toString();
          DataNode node = getNode(pathString);
          if (node == null) {
              return;
          }
          String children[] = null;
          synchronized (node) {
              scount++;
              oa.writeString(pathString, "path");
              oa.writeRecord(node, "node");
              Set<String> childs = node.getChildren();
              if (childs != null) {
                  children = childs.toArray(new String[childs.size()]);
              }
          }
          path.append('/');
          int off = path.length();
          if (children != null) {
              for (String child : children) {
                  // since this is single buffer being resused
                  // we need
                  // to truncate the previous bytes of string.
                  path.delete(off, Integer.MAX_VALUE);
                  path.append(child);
                  serializeNode(oa, path);
              }
          }
      }