void (IncomingChangeListData data) { HashSet<Change> result = new HashSet<>(); try { File partialFile = getPartialPath(data.indexEntry.offset); if (partialFile.exists()) { try (RandomAccessFile file = new RandomAccessFile(partialFile, "r")) { int count = file.readInt(); if (count > 0) { final Collection<Change> changes = data.changeList.getChanges(); final Map<String, Change> beforePaths = new HashMap<>(); final Map<String, Change> afterPaths = new HashMap<>(); for (Change change : changes) { if (change.getBeforeRevision() != null) { beforePaths.put(FilePathsHelper.convertPath(change.getBeforeRevision().getFile()), change); } if (change.getAfterRevision() != null) { afterPaths.put(FilePathsHelper.convertPath(change.getAfterRevision().getFile()), change); } } for (int i = 0; i < count; i++) { boolean isAfterRevision = (file.readByte() != 0); String path = file.readUTF(); final String converted = FilePathsHelper.convertPath(path); final Change change; if (isAfterRevision) { change = afterPaths.get(converted); } else { change = beforePaths.get(converted); } if (change != null) { result.add(change); } } } } } } catch(IOException ex) { LOG.error(ex); } data.accountedChanges = result; }