code: @SuppressWarnings("unchecked")
    protected void increaseNewListSize() throws IOException {
      if (!closed) {
        String[] tmpNewKeyList = newKeyList;
        int[] tmpNewSourceNumberList = newSourceNumberList;
        int[] tmpNewErrorNumber = newErrorNumber;
        HashMap<String, Integer>[] tmpNewErrorList = newErrorList;
        int tmpNewSize = newSize;
        newSize = 2 * newSize;
        newKeyList = new String[newSize];
        newSourceNumberList = new int[newSize];
        newErrorNumber = new int[newSize];
        newErrorList = (HashMap<String, Integer>[]) new HashMap<?, ?>[newSize];
        System.arraycopy(tmpNewKeyList, 0, newKeyList, 0, tmpNewSize);
        System.arraycopy(tmpNewSourceNumberList, 0, newSourceNumberList, 0,
            tmpNewSize);
        System.arraycopy(tmpNewErrorNumber, 0, newErrorNumber, 0, tmpNewSize);
        System.arraycopy(tmpNewErrorList, 0, newErrorList, 0, tmpNewSize);
        if (hasSub) {
          MtasDataCollector<?, ?>[] tmpNewSubCollectorListNextLevel = newSubCollectorListNextLevel;
          newSubCollectorListNextLevel = new MtasDataCollector[newSize];
          System.arraycopy(tmpNewSubCollectorListNextLevel, 0,
              newSubCollectorListNextLevel, 0, tmpNewSize);
        }
      } else {
        throw new IOException("already closed");
      }
    }
docs: Increase new list size.
  
  @throws IOException Signals that an I/O exception has occurred.