boolean (@NotNull VfsEventProcessor eventProcessor) { if (!myChangeInfos.isEmpty()) { int[] fileIds = myChangeInfos.keys(); // snapshot of the keys for (int fileId : fileIds) { ProgressManager.checkCanceled(); ChangeInfo info = myChangeInfos.remove(fileId); if (info == null) continue; try { if (LOG != null) { LOG.info("Processing " + info); } if (!eventProcessor.process(info)) { eventProcessor.endBatch(); return false; } } catch (ProcessCanceledException pce) { // todo remove ((FileBasedIndexEx)FileBasedIndex.getInstance()).getLogger().error(pce); assert false; } } eventProcessor.endBatch(); } return true; }