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 3e54e0579b..41de89a984 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 @@ -258,6 +258,12 @@ public class NotebookServer extends WebSocketServlet implements } } catch (Exception e) { LOG.error("Can't handle message", e); + try { + conn.send(serializeMessage(new Message(OP.ERROR_INFO).put("info", + "Oops! Something went wrong. Please check with your administrator."))); + } catch (IOException e1) { + LOG.error("Can't handle message", e); + } } } diff --git a/zeppelin-web/src/components/websocketEvents/websocketEvents.factory.js b/zeppelin-web/src/components/websocketEvents/websocketEvents.factory.js index 36e90b4938..6e0bbbae29 100644 --- a/zeppelin-web/src/components/websocketEvents/websocketEvents.factory.js +++ b/zeppelin-web/src/components/websocketEvents/websocketEvents.factory.js @@ -117,6 +117,21 @@ angular.module('zeppelinWebApp').factory('websocketEvents', $rootScope.$broadcast('noteRevision', data); } else if (op === 'INTERPRETER_BINDINGS') { $rootScope.$broadcast('interpreterBindings', data); + } else if (op === 'ERROR_INFO') { + BootstrapDialog.show({ + closable: false, + closeByBackdrop: false, + closeByKeyboard: false, + title: 'Details', + message: data.info.toString(), + buttons: [{ + // close all the dialogs when there are error on running all paragraphs + label: 'Close', + action: function() { + BootstrapDialog.closeAll(); + } + }] + }); } }); diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java index b314e6227f..2aded60ee4 100644 --- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java +++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java @@ -139,7 +139,8 @@ public class Message { SAVE_INTERPRETER_BINDINGS, // [c-s] save interpreter bindings // @param noteID // @param selectedSettingIds - INTERPRETER_BINDINGS // [s-c] interpreter bindings + INTERPRETER_BINDINGS, // [s-c] interpreter bindings + ERROR_INFO // [s-c] error information to be sent } public OP op;