diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java index 10c9410770..50351ed798 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java @@ -1595,9 +1595,11 @@ public class NotebookServer extends WebSocketServlet implements private void getEditorSetting(NotebookSocket conn, Message fromMessage) throws IOException { + String orderId = (String) fromMessage.get("orderId"); String replName = (String) fromMessage.get("magic"); String noteId = getOpenNoteId(conn); Message resp = new Message(OP.EDITOR_SETTING); + resp.put("orderId", orderId); resp.put("editor", notebook().getInterpreterFactory().getEditorSetting(noteId, replName)); conn.send(serializeMessage(resp)); return; diff --git a/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js b/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js index 8c4681075f..7415fc99fb 100644 --- a/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js +++ b/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js @@ -705,13 +705,15 @@ angular.module('zeppelinWebApp').controller('ParagraphCtrl', function($scope, $r var getAndSetEditorSetting = function(session, interpreterName) { var deferred = $q.defer(); - websocketMsgSrv.getEditorSetting(interpreterName); + websocketMsgSrv.getEditorSetting($scope.paragraph.id, interpreterName); $timeout( $scope.$on('editorSetting', function(event, data) { - deferred.resolve(data); + if ($scope.paragraph.id === data.orderId) { + deferred.resolve(data); + } } ), 1000); - + deferred.promise.then(function(editorSetting) { if (!_.isEmpty(editorSetting.editor)) { var mode = 'ace/mode/' + editorSetting.editor.language; diff --git a/zeppelin-web/src/components/websocketEvents/websocketMsg.service.js b/zeppelin-web/src/components/websocketEvents/websocketMsg.service.js index 3b27bced48..d72fc5d4b8 100644 --- a/zeppelin-web/src/components/websocketEvents/websocketMsg.service.js +++ b/zeppelin-web/src/components/websocketEvents/websocketMsg.service.js @@ -180,10 +180,11 @@ angular.module('zeppelinWebApp').service('websocketMsgSrv', function($rootScope, }); }, - getEditorSetting: function(replName) { + getEditorSetting: function(orderId, replName) { websocketEvents.sendNewEvent({ op: 'EDITOR_SETTING', data: { + orderId: orderId, magic: replName } });