From f5c70bf5cb18deb611331e2e2d6a900c0061b9a0 Mon Sep 17 00:00:00 2001 From: Vladyslav Zhukovskii Date: Tue, 14 Mar 2017 17:15:55 +0200 Subject: [PATCH 1/2] Prevent multiple event subscription for single file Signed-off-by: Vladyslav Zhukovskii --- .../che/ide/api/event/ng/FileOpenCloseEventListener.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ide/che-core-ide-api/src/main/java/org/eclipse/che/ide/api/event/ng/FileOpenCloseEventListener.java b/ide/che-core-ide-api/src/main/java/org/eclipse/che/ide/api/event/ng/FileOpenCloseEventListener.java index d7374ff3d98..bb186639226 100644 --- a/ide/che-core-ide-api/src/main/java/org/eclipse/che/ide/api/event/ng/FileOpenCloseEventListener.java +++ b/ide/che-core-ide-api/src/main/java/org/eclipse/che/ide/api/event/ng/FileOpenCloseEventListener.java @@ -47,16 +47,21 @@ public FileOpenCloseEventListener(final Provider editorAgentProvide @Override public void onFileOperation(FileEvent event) { final Path path = event.getFile().getLocation(); + final EditorAgent editorAgent = editorAgentProvider.get(); switch (event.getOperationType()) { case OPEN: { - processFileOpen(path); + if (editorAgent.getOpenedEditor(path) == null) { // if we haven't any editor for given path yet + Log.info(getClass(), "Subscribe file for event handling"); // we subscribe for event handling otherwise we + // do nothing + processFileOpen(path); + } break; } case CLOSE: { final EditorPartPresenter closingEditor = event.getEditorTab().getRelativeEditorPart(); - final List openedEditors = editorAgentProvider.get().getOpenedEditors(); + final List openedEditors = editorAgent.getOpenedEditors(); processFileClose(closingEditor, openedEditors, path); From 08543c8df658c6bda425ecc450e816cb748c6fc8 Mon Sep 17 00:00:00 2001 From: Vladyslav Zhukovskii Date: Tue, 14 Mar 2017 17:46:08 +0200 Subject: [PATCH 2/2] Change log level to debug Signed-off-by: Vladyslav Zhukovskii --- .../che/ide/api/event/ng/FileOpenCloseEventListener.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ide/che-core-ide-api/src/main/java/org/eclipse/che/ide/api/event/ng/FileOpenCloseEventListener.java b/ide/che-core-ide-api/src/main/java/org/eclipse/che/ide/api/event/ng/FileOpenCloseEventListener.java index bb186639226..32f7e7094b8 100644 --- a/ide/che-core-ide-api/src/main/java/org/eclipse/che/ide/api/event/ng/FileOpenCloseEventListener.java +++ b/ide/che-core-ide-api/src/main/java/org/eclipse/che/ide/api/event/ng/FileOpenCloseEventListener.java @@ -51,9 +51,9 @@ public void onFileOperation(FileEvent event) { switch (event.getOperationType()) { case OPEN: { - if (editorAgent.getOpenedEditor(path) == null) { // if we haven't any editor for given path yet - Log.info(getClass(), "Subscribe file for event handling"); // we subscribe for event handling otherwise we - // do nothing + if (editorAgent.getOpenedEditor(path) == null) { // if we haven't any editor for given path yet + Log.debug(getClass(), "Subscribe file for event handling"); // we subscribe for event handling otherwise we + // do nothing processFileOpen(path); }