diff --git a/demo-edit-es-module/src/main/java/org/sudu/experiments/diff/RemoteFolderDiffWindow.java b/demo-edit-es-module/src/main/java/org/sudu/experiments/diff/RemoteFolderDiffWindow.java index 5a3e1b7bf..75c91ca6c 100644 --- a/demo-edit-es-module/src/main/java/org/sudu/experiments/diff/RemoteFolderDiffWindow.java +++ b/demo-edit-es-module/src/main/java/org/sudu/experiments/diff/RemoteFolderDiffWindow.java @@ -177,6 +177,7 @@ private void update(JsArray jsResult) { } private void onDiffApplied(JsArray jsResult) { + LoggingJs.info("RemoteFolderDiffWindow.onDiffApplied"); var msg = BackendMessage.deserialize(jsResult); rootModel.update(msg.root); updateNodes(leftRoot, rightRoot, rootModel); @@ -589,6 +590,7 @@ private void sendApplyDiff(FolderDiffModel model, boolean left) { result.set(1, JsCast.jsInts(left ? 0 : 1)); result.push(DiffModelChannelUpdater.APPLY_DIFF_ARRAY); channel.sendMessage(result); + LoggingJs.info("RemoteFolderDiffWindow.sendApplyDiff"); } void fileDiffMade(FolderDiffModel dModel, boolean left, Model model) { diff --git a/demo-edit/src/main/java/org/sudu/experiments/diff/folder/ItemFolderDiffModel.java b/demo-edit/src/main/java/org/sudu/experiments/diff/folder/ItemFolderDiffModel.java index 816ca1c0d..b1b8821d1 100644 --- a/demo-edit/src/main/java/org/sudu/experiments/diff/folder/ItemFolderDiffModel.java +++ b/demo-edit/src/main/java/org/sudu/experiments/diff/folder/ItemFolderDiffModel.java @@ -29,7 +29,7 @@ public ItemFolderDiffModel parent() { public ItemFolderDiffModel findNeedUpdate(Deque paths) { if (parent == null) return this; int diffType = getDiffType(); - if ((diffType == DiffTypes.DEFAULT || diffType == DiffTypes.EDITED) && countItems() < 2) { + if (this.isFile() || (diffType == DiffTypes.DEFAULT || diffType == DiffTypes.EDITED) && countItems() < 2) { paths.addFirst(this); return parent().findNeedUpdate(paths); } @@ -37,11 +37,15 @@ public ItemFolderDiffModel findNeedUpdate(Deque paths) { } public void setItems(FsItem left, FsItem right) { + if (!path.equals(left.getName()) || !path.equals(right.getName())) + System.out.println("Set items: " + left.getName() + " & " + right.getName() + " to " + path); items[0] = left; items[1] = right; } public void setItem(FsItem item) { + if (!path.equals(item.getName())) + System.out.println("Set item: " + item.getName() + " to " + path); if (isLeftOnly()) items[0] = item; else if (isRightOnly()) items[1] = item; } diff --git a/filediff-node-module/src/main/java/org/sudu/experiments/update/RemoteCollector.java b/filediff-node-module/src/main/java/org/sudu/experiments/update/RemoteCollector.java index bdad5d26f..532a926e0 100644 --- a/filediff-node-module/src/main/java/org/sudu/experiments/update/RemoteCollector.java +++ b/filediff-node-module/src/main/java/org/sudu/experiments/update/RemoteCollector.java @@ -107,6 +107,7 @@ public void applyDiff(int[] path, boolean left) { lastFrontendMessage.collectPath(path, pathWriter, root, left); Runnable updateModel = () -> { + LoggingJs.info("RemoteCollector.applyDiff.updateModel"); if (isDeleteDiff) { var node = lastFrontendMessage.findNode(path); var parentNode = lastFrontendMessage.findParentNode(path); @@ -143,7 +144,8 @@ private void updateModelItems(ItemFolderDiffModel model, boolean left) { sb.append(path); st += path.length(); } - + LoggingJs.info("Upd Model: " + updModel.path); + LoggingJs.info("Send reread"); executor.sendToWorker(true, (res) -> updateNode(updModel, !left, updModelPath, res), DiffUtils.REREAD_FOLDER, @@ -152,6 +154,7 @@ private void updateModelItems(ItemFolderDiffModel model, boolean left) { } private void updateNode(ItemFolderDiffModel updModel, boolean left, Deque updModelPath, Object[] result) { + LoggingJs.info("RemoteCollector.updateNode"); int[] ints = ((ArrayView) result[0]).ints(); ArrayReader reader = new ArrayReader(ints); Deque items = new LinkedList<>();