public synchronized List<IndexCommit> getSnapshots() {return new ArrayList<>(indexCommits.values());}

public virtual IList<IndexCommit> GetSnapshots(){lock (this){return new List<IndexCommit>(m_indexCommits.Values);}}
