[ZEPPELIN-5780] Unify paragraph errors (#4422)

diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSettingManager.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSettingManager.java
index cfdae70..72d79a3 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSettingManager.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSettingManager.java
@@ -1073,7 +1073,6 @@
     }
   }
 
-  @VisibleForTesting
   public List<String> getSettingIds() {
     List<String> settingIds = new ArrayList<>();
     for (InterpreterSetting interpreterSetting : get()) {
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java
index 2c48a28..c02f90b 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java
@@ -772,14 +772,12 @@
             return;
           }
         } catch (InterpreterNotFoundException e) {
-          // ignore, because the following run method will fail if interpreter not found.
+          p.setInterpreterNotFound(e);
         } finally {
           // reset params to the original value
           p.settings.setParams(originalParams);
         }
       }
-    } catch (Exception e) {
-      throw e;
     } finally {
       if (isolated) {
         LOGGER.info("Releasing interpreters used by this note: {}", id);
@@ -1178,7 +1176,6 @@
     return result;
   }
 
-  @VisibleForTesting
   public static Gson getGSON() {
     return GSON;
   }
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/NotebookImportDeserializer.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/NotebookImportDeserializer.java
index 0b8eed8..8b5f2d4 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/NotebookImportDeserializer.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/NotebookImportDeserializer.java
@@ -47,6 +47,7 @@
       try {
         return new SimpleDateFormat(format, Locale.US).parse(jsonElement.getAsString());
       } catch (ParseException e) {
+        // try the next format
       }
     }
     throw new JsonParseException("Unparsable date: \"" + jsonElement.getAsString()
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java
index 2fd7b16..e88111f 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java
@@ -245,7 +245,6 @@
     return this.note.getInterpreterFactory().getInterpreter(intpText, executionContext);
   }
 
-  @VisibleForTesting
   public void setInterpreter(Interpreter interpreter) {
     this.interpreter = interpreter;
   }
@@ -375,18 +374,10 @@
         return true;
       }
     } catch (InterpreterNotFoundException e) {
-      InterpreterResult intpResult =
-          new InterpreterResult(InterpreterResult.Code.ERROR,
-                  String.format("Interpreter %s not found", this.intpText));
-      setReturn(intpResult, e);
-      setStatus(Job.Status.ERROR);
+      setInterpreterNotFound(e);
       return false;
     } catch (Throwable e) {
-      InterpreterResult intpResult =
-              new InterpreterResult(InterpreterResult.Code.ERROR,
-                      "Unexpected exception: " + ExceptionUtils.getStackTrace(e));
-      setReturn(intpResult, e);
-      setStatus(Job.Status.ERROR);
+      setUnexpectedException(e);
       return false;
     }
   }
@@ -463,7 +454,7 @@
         settings.clear();
       }
 
-      LOGGER.debug("RUN : " + script);
+      LOGGER.debug("RUN : {}", script);
       try {
         InterpreterContext context = getInterpreterContext();
         InterpreterContext.set(context);
@@ -711,7 +702,7 @@
    * note you can see the latest checkpoint's output.
    */
   public void checkpointOutput() {
-    LOGGER.info("Checkpoint Paragraph output for paragraph: " + getId());
+    LOGGER.info("Checkpoint Paragraph output for paragraph: {}", getId());
     this.results = new InterpreterResult(Code.SUCCESS);
     for (InterpreterResultMessage buffer : outputBuffer) {
       results.add(buffer);
@@ -846,17 +837,25 @@
       }
 
     } catch (InterpreterNotFoundException e) {
-      InterpreterResult intpResult =
-              new InterpreterResult(InterpreterResult.Code.ERROR,
-                      String.format("Interpreter %s not found", this.intpText));
-      setReturn(intpResult, e);
-      setStatus(Job.Status.ERROR);
+      setInterpreterNotFound(e);
     } catch (Throwable e) {
-      InterpreterResult intpResult =
-              new InterpreterResult(InterpreterResult.Code.ERROR,
-                      "Unexpected exception: " + ExceptionUtils.getStackTrace(e));
-      setReturn(intpResult, e);
-      setStatus(Job.Status.ERROR);
+      setUnexpectedException(e);
     }
   }
+
+  public void setInterpreterNotFound(InterpreterNotFoundException e) {
+    InterpreterResult intpResult =
+      new InterpreterResult(InterpreterResult.Code.ERROR,
+              String.format("Interpreter %s not found", this.intpText));
+    setReturn(intpResult, e);
+    setStatus(Job.Status.ERROR);
+  }
+
+  public void setUnexpectedException(Throwable e) {
+    InterpreterResult intpResult =
+      new InterpreterResult(InterpreterResult.Code.ERROR,
+        "Unexpected exception: " + ExceptionUtils.getStackTrace(e));
+    setReturn(intpResult, e);
+    setStatus(Job.Status.ERROR);
+  }
 }