You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by zj...@apache.org on 2018/08/01 01:00:22 UTC

zeppelin git commit: ZEPPELIN-3672. spark interpreter: Java output (to the console) is lost

Repository: zeppelin
Updated Branches:
  refs/heads/master 343fd178e -> b2b29aa68


ZEPPELIN-3672. spark interpreter: Java output (to the console) is lost

### What is this PR for?
This is to fix the bug of redirecting java stdout to zeppelin frontend

### What type of PR is it?
[Bug Fix]

### Todos
* [ ] - Task

### What is the Jira issue?
* https://issues.apache.org/jira/browse/ZEPPELIN-3672

### How should this be tested?
* Unit test added

### 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: Jeff Zhang <zj...@apache.org>

Closes #3105 from zjffdu/ZEPPELIN-3672 and squashes the following commits:

a2af68c8c [Jeff Zhang] ZEPPELIN-3672. spark interpreter: Java output (to the console) is lost


Project: http://git-wip-us.apache.org/repos/asf/zeppelin/repo
Commit: http://git-wip-us.apache.org/repos/asf/zeppelin/commit/b2b29aa6
Tree: http://git-wip-us.apache.org/repos/asf/zeppelin/tree/b2b29aa6
Diff: http://git-wip-us.apache.org/repos/asf/zeppelin/diff/b2b29aa6

Branch: refs/heads/master
Commit: b2b29aa682f56ba63cad8f371fd1ba609790d3a3
Parents: 343fd17
Author: Jeff Zhang <zj...@apache.org>
Authored: Tue Jul 31 09:12:56 2018 +0800
Committer: Jeff Zhang <zj...@apache.org>
Committed: Wed Aug 1 08:58:00 2018 +0800

----------------------------------------------------------------------
 .../java/org/apache/zeppelin/spark/NewSparkInterpreterTest.java | 5 +++++
 .../org/apache/zeppelin/spark/BaseSparkScalaInterpreter.scala   | 4 ++++
 2 files changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zeppelin/blob/b2b29aa6/spark/interpreter/src/test/java/org/apache/zeppelin/spark/NewSparkInterpreterTest.java
----------------------------------------------------------------------
diff --git a/spark/interpreter/src/test/java/org/apache/zeppelin/spark/NewSparkInterpreterTest.java b/spark/interpreter/src/test/java/org/apache/zeppelin/spark/NewSparkInterpreterTest.java
index 59b39dd..9dc9d8f 100644
--- a/spark/interpreter/src/test/java/org/apache/zeppelin/spark/NewSparkInterpreterTest.java
+++ b/spark/interpreter/src/test/java/org/apache/zeppelin/spark/NewSparkInterpreterTest.java
@@ -100,6 +100,11 @@ public class NewSparkInterpreterTest {
     assertEquals(InterpreterResult.Code.SUCCESS, result.code());
     assertEquals("hello world", output);
 
+    // java stdout
+    result = interpreter.interpret("System.out.print(a)", getInterpreterContext());
+    assertEquals(InterpreterResult.Code.SUCCESS, result.code());
+    assertEquals("hello world", output);
+
     // incomplete
     result = interpreter.interpret("println(a", getInterpreterContext());
     assertEquals(InterpreterResult.Code.INCOMPLETE, result.code());

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/b2b29aa6/spark/spark-scala-parent/src/main/scala/org/apache/zeppelin/spark/BaseSparkScalaInterpreter.scala
----------------------------------------------------------------------
diff --git a/spark/spark-scala-parent/src/main/scala/org/apache/zeppelin/spark/BaseSparkScalaInterpreter.scala b/spark/spark-scala-parent/src/main/scala/org/apache/zeppelin/spark/BaseSparkScalaInterpreter.scala
index 3123bb2..7fe43c1 100644
--- a/spark/spark-scala-parent/src/main/scala/org/apache/zeppelin/spark/BaseSparkScalaInterpreter.scala
+++ b/spark/spark-scala-parent/src/main/scala/org/apache/zeppelin/spark/BaseSparkScalaInterpreter.scala
@@ -81,8 +81,10 @@ abstract class BaseSparkScalaInterpreter(val conf: SparkConf,
 
   def interpret(code: String, context: InterpreterContext): InterpreterResult = {
 
+    val originalOut = System.out
     def _interpret(code: String): scala.tools.nsc.interpreter.Results.Result = {
       Console.withOut(interpreterOutput) {
+        System.setOut(Console.out)
         interpreterOutput.setInterpreterOutput(context.out)
         interpreterOutput.ignoreLeadingNewLinesFromScalaReporter()
         context.out.clear()
@@ -108,6 +110,8 @@ abstract class BaseSparkScalaInterpreter(val conf: SparkConf,
         status
       }
     }
+    // reset the java stdout
+    System.setOut(originalOut)
 
     val lastStatus = _interpret(code) match {
       case scala.tools.nsc.interpreter.IR.Success =>