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..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 @@ -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.debug(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);