ListData (@NotNull Change change) { if (LOG.isDebugEnabled()) { final String path = ChangesUtil.getFilePath(change).getPath(); LOG.debug("[addChangeToCorrespondingList] for change " + path + " type: " + change.getType() + " have before revision: " + (change.getBeforeRevision() != null)); } for (ChangeListWorker.ListData list : myWorker.myLists) { Set<Change> changesBeforeUpdate = myChangesBeforeUpdateMap.get(list.id); if (changesBeforeUpdate.contains(change)) { LOG.debug("[addChangeToCorrespondingList] matched by change: ", list.name); return list; } } String listId = guessChangeListByPaths(change); if (listId != null) { ListData list = myWorker.getDataById(listId); if (list != null) { LOG.debug("[addChangeToCorrespondingList] matched by paths: ", list.name); return list; } } String assignedChangeListId = ChangeListChangeAssigner.EP_NAME.computeSafeIfAny(myWorker.myProject, assigner -> { return assigner.getChangeListIdFor(change, this); }); if (assignedChangeListId != null) { ListData list = myWorker.getDataById(assignedChangeListId); if (list != null) { LOG.debug("[addChangeToCorrespondingList] added to list from assigner: ", list.name); return list; } else { LOG.debug("[addChangeToCorrespondingList] failed to add to non-existent list from assigner: ", assignedChangeListId); } } ContentRevision revision = change.getAfterRevision(); if (revision != null && myWorker.myChangeListsEnabled && myWorker.myPartialChangeTrackers.get(revision.getFile()) != null) { LOG.debug("[addChangeToCorrespondingList] partial tracker found"); return null; } LOG.debug("[addChangeToCorrespondingList] added to default list"); return myWorker.myDefault; }