code: @SuppressWarnings("unchecked")  // Generic array assignment
    public void readFields(DataInput in) throws IOException {
      if (conf == null) {
        throw new IOException("Hadoop Configuration not set via setConf");
      }
      int card = WritableUtils.readVInt(in);
      splits = new ArrayList<InputSplit>();
      for (int i = 0; i < card; ++i) {
        splits.add(SplitUtil.deserializeInputSplit(conf, (DataInputStream) in));
      }
    }
docs: {@inheritDoc}
  @throws IOException If the child InputSplit cannot be read, typically
  for failing access checks.