docs: public byte[][] receiveTupleV3() throws IOException, OutOfMemoryError {
      // TODO: use msgSize
      int msgSize = receiveInteger4();
      int nf = receiveInteger2();
      byte[][] answer = new byte[nf][];
  
      OutOfMemoryError oom = null;
      for (int i = 0; i < nf; ++i) {
        int size = receiveInteger4();
        if (size != -1) {
          try {
            answer[i] = new byte[size];
            receive(answer[i], 0, size);
          } catch (OutOfMemoryError oome) {
            oom = oome;
            skip(size);
          }
        }
      }
  
      if (oom != null) {
        throw oom;
      }
  
      return answer;
    }