diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterFactory.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterFactory.java index 7732a4577b6..e37a0a08d14 100644 --- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterFactory.java +++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterFactory.java @@ -839,17 +839,21 @@ public void setPropertyAndRestart(String id, InterpreterOption option, Propertie synchronized (interpreterSettings) { InterpreterSetting intpsetting = interpreterSettings.get(id); if (intpsetting != null) { - - stopJobAllInterpreter(intpsetting); - - intpsetting.closeAndRmoveAllInterpreterGroups(); - - intpsetting.setOption(option); - intpsetting.setProperties(properties); - intpsetting.setDependencies(dependencies); - - loadInterpreterDependencies(intpsetting); - saveToFile(); + try { + stopJobAllInterpreter(intpsetting); + + intpsetting.closeAndRmoveAllInterpreterGroups(); + intpsetting.setOption(option); + intpsetting.setProperties(properties); + intpsetting.setDependencies(dependencies); + loadInterpreterDependencies(intpsetting); + + saveToFile(); + } catch (Exception e) { + throw e; + } finally { + loadFromFile(); + } } else { throw new InterpreterException("Interpreter setting id " + id + " not found"); }