This is an automated email from the ASF dual-hosted git repository. zjffdu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/zeppelin.git
The following commit(s) were added to refs/heads/master by this push: new 5750a98 [ZEPPELIN-4410] Added exception handling when converting old notebooks to newer format 5750a98 is described below commit 5750a98d0068e8f7418fa7f1a20af50261ee4980 Author: amakaur <amandeep.k...@applovin.com> AuthorDate: Wed Oct 30 16:03:51 2019 -0700 [ZEPPELIN-4410] Added exception handling when converting old notebooks to newer format ### What is this PR for? Added exception handling when creating a Note object from a json string. ### What type of PR is it? Bug Fix ### What is the Jira issue? https://issues.apache.org/jira/browse/ZEPPELIN-4410 ### How should this be tested? - Create a notebook on zeppelin 0.7.3 - Create a spark interpreter - Run paragraph that creates a runtime exception - Run upgrade-note.sh on the created notebook - This will crash the script because it'll not be able to construct a java object from the given note.json ### Screenshots (if appropriate) ### Questions: * Does the licenses files need update? No * Is there breaking changes for older versions? No * Does this needs documentation? No Author: amakaur <amandeep.k...@applovin.com> Closes #3499 from amakaur/add_exception_handling_for_note and squashes the following commits: e4a9547b0 [amakaur] Added exception handling when converting old notebooks to newer .zpln format --- .../zeppelin/notebook/repo/OldS3NotebookRepo.java | 4 +++- .../main/java/org/apache/zeppelin/notebook/Note.java | 18 +++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/zeppelin-plugins/notebookrepo/s3/src/main/java/org/apache/zeppelin/notebook/repo/OldS3NotebookRepo.java b/zeppelin-plugins/notebookrepo/s3/src/main/java/org/apache/zeppelin/notebook/repo/OldS3NotebookRepo.java index 8cbd79a..5e4b653 100644 --- a/zeppelin-plugins/notebookrepo/s3/src/main/java/org/apache/zeppelin/notebook/repo/OldS3NotebookRepo.java +++ b/zeppelin-plugins/notebookrepo/s3/src/main/java/org/apache/zeppelin/notebook/repo/OldS3NotebookRepo.java @@ -187,6 +187,8 @@ public class OldS3NotebookRepo implements OldNotebookRepo { info = getNoteInfo(objectSummary.getKey()); if (info != null) { infos.add(info); + } else { + LOG.debug("Unable to get notebook info for key: " + objectSummary.getKey()); } } } @@ -215,7 +217,7 @@ public class OldS3NotebookRepo implements OldNotebookRepo { private OldNoteInfo getNoteInfo(String key) throws IOException { Note note = getNote(key); - return new OldNoteInfo(note); + return note != null ? new OldNoteInfo(note) : null; } @Override 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 9c4138c..3e93038 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 @@ -1029,11 +1029,19 @@ public class Note implements JsonSerializable { } public static Note fromJson(String json) { - Note note = gson.fromJson(json, Note.class); - convertOldInput(note); - note.info.remove("isRunning"); - note.postProcessParagraphs(); - return note; + try + { + Note note = gson.fromJson(json, Note.class); + convertOldInput(note); + note.info.remove("isRunning"); + note.postProcessParagraphs(); + + return note; + } catch (Exception e) { + logger.error("Unable to parse notebook: " + e.toString()); + + return null; + } } public void postProcessParagraphs() {