void (final ActionUrl[] defaultUserObjects, final ActionUrl[] currentUserObjects, @NotNull List<? super ActionUrl> actions) { Diff.Change change = null; try { change = Diff.buildChanges(defaultUserObjects, currentUserObjects); } catch (FilesTooBigForDiffException e) { LOG.info(e); } while (change != null) { for (int i = 0; i < change.deleted; i++) { final int idx = change.line0 + i; ActionUrl currentUserObject = defaultUserObjects[idx]; currentUserObject.setActionType(ActionUrl.DELETED); currentUserObject.setAbsolutePosition(idx); actions.add(currentUserObject); } for (int i = 0; i < change.inserted; i++) { final int idx = change.line1 + i; ActionUrl currentUserObject = currentUserObjects[idx]; currentUserObject.setActionType(ActionUrl.ADDED); currentUserObject.setAbsolutePosition(idx); actions.add(currentUserObject); } change = change.link; } }