void (RunConfigurationBase configurationBase) { List<LogFileOptions> items = myModel.getItems(); List<LogFileOptions> newItems = new ArrayList<>(); boolean changed = false; for (LogFileOptions item : items) { final PredefinedLogFile predefined = myLog2Predefined.get(item); if (predefined != null) { final LogFileOptions options = configurationBase.getOptionsForPredefinedLogFile(predefined); if (LogFileOptions.areEqual(item, options)) { newItems.add(item); } else { changed = true; myLog2Predefined.remove(item); if (options == null) { myUnresolvedPredefined.add(predefined); } else { newItems.add(options); myLog2Predefined.put(options, predefined); } } } else { newItems.add(item); } } final PredefinedLogFile[] unresolved = myUnresolvedPredefined.toArray(new PredefinedLogFile[0]); for (PredefinedLogFile logFile : unresolved) { final LogFileOptions options = configurationBase.getOptionsForPredefinedLogFile(logFile); if (options != null) { changed = true; myUnresolvedPredefined.remove(logFile); myLog2Predefined.put(options, logFile); newItems.add(options); } } if (changed) { myModel.setItems(newItems); } }