// simple case, we managed to keep everything in memory, sort and return a
// reader based on the collection contents
Collections.sort(features, comparator);
SimpleFeatureIterator fi = new ListFeatureCollection(schema, features).features();
return new DelegateSimpleFeatureReader(schema, fi);
} else {
// go merge-sort
cleanFile = false;
return new MergeSortReader(schema, raf, file, readers, comparator);
}