private void save(List<WeakReference<DataFile>> toSave) throws DataFileException { Iterator<WeakReference<DataFile>> it = toSave.iterator(); while (it.hasNext()) { WeakReference<DataFile> ref = it.next(); if (ref != null) { DataFile df = ref.get(); if (df != null) { df.save(); } else { it.remove(); } } else { it.remove(); } } }