Repository: zeppelin Updated Branches: refs/heads/master ed5349729 -> 18fd5481a
ZEPPELIN-1851. LazyOpenInterpreter would open interpreter multiple times when open fails ### What is this PR for? Change `opened` to be `volatile` as it would be accessed by multiple threads. And check `opened` in `getProgress` rather than call `open()` ### What type of PR is it? [Bug Fix] ### Todos * [ ] - Task ### What is the Jira issue? * https://issues.apache.org/jira/browse/ZEPPELIN-1851 ### How should this be tested? Tested manually on livy interpreter (change the livy configuration to make livy fails to create session). ### Questions: * Does the licenses files need update? No * Is there breaking changes for older versions? No * Does this needs documentation? No Author: Jeff Zhang <zjf...@apache.org> Closes #1795 from zjffdu/ZEPPELIN-1851 and squashes the following commits: e800932 [Jeff Zhang] ZEPPELIN-1851. LazyOpenInterpreter would open interpreter multiple times when open fails Project: http://git-wip-us.apache.org/repos/asf/zeppelin/repo Commit: http://git-wip-us.apache.org/repos/asf/zeppelin/commit/18fd5481 Tree: http://git-wip-us.apache.org/repos/asf/zeppelin/tree/18fd5481 Diff: http://git-wip-us.apache.org/repos/asf/zeppelin/diff/18fd5481 Branch: refs/heads/master Commit: 18fd5481aa6de3d7075968bc4c981a9bcb3407dd Parents: ed53497 Author: Jeff Zhang <zjf...@apache.org> Authored: Fri Dec 23 11:14:32 2016 +0800 Committer: Jongyoul Lee <jongy...@apache.org> Committed: Thu Jan 5 12:04:29 2017 +0900 ---------------------------------------------------------------------- .../apache/zeppelin/interpreter/LazyOpenInterpreter.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zeppelin/blob/18fd5481/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/LazyOpenInterpreter.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/LazyOpenInterpreter.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/LazyOpenInterpreter.java index 425ae20..6e11604 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/LazyOpenInterpreter.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/LazyOpenInterpreter.java @@ -31,7 +31,7 @@ public class LazyOpenInterpreter extends Interpreter implements WrappedInterpreter { private Interpreter intp; - boolean opened = false; + volatile boolean opened = false; public LazyOpenInterpreter(Interpreter intp) { super(new Properties()); @@ -59,7 +59,7 @@ public class LazyOpenInterpreter } @Override - public void open() { + public synchronized void open() { if (opened == true) { return; } @@ -107,8 +107,11 @@ public class LazyOpenInterpreter @Override public int getProgress(InterpreterContext context) { - open(); - return intp.getProgress(context); + if (opened) { + return intp.getProgress(context); + } else { + return 0; + } } @Override