Lee moon soo created ZEPPELIN-2067: -------------------------------------- Summary: SparkInterpreter (scala) prints unnecessary newline Key: ZEPPELIN-2067 URL: https://issues.apache.org/jira/browse/ZEPPELIN-2067 Project: Zeppelin Issue Type: Bug Reporter: Lee moon soo Assignee: Lee moon soo Fix For: 0.8.0
When SparkInterpreter call interpret() method, it prints output from scala repl (IMain). However before each evaluation's output is printed, there's unnecessary newline char from scala repl. Made stacktrace where this unnecessary newline came from and got {code} at org.apache.zeppelin.interpreter.InterpreterOutput.write(InterpreterOutput.java:177) at org.apache.zeppelin.interpreter.util.InterpreterOutputStream.write(InterpreterOutputStream.java:50) at org.apache.zeppelin.interpreter.util.LogOutputStream.write(LogOutputStream.java:97) at org.apache.zeppelin.interpreter.util.InterpreterOutputStream.write(InterpreterOutputStream.java:64) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229) at java.io.BufferedWriter.flush(BufferedWriter.java:254) at java.io.PrintWriter.flush(PrintWriter.java:320) at java.io.PrintWriter.flush(PrintWriter.java:320) at scala.tools.nsc.reporters.ConsoleReporter.printMessage(ConsoleReporter.scala:45) at scala.tools.nsc.interpreter.ReplReporter.printMessage(ReplReporter.scala:61) at scala.tools.nsc.reporters.ConsoleReporter.printMessage(ConsoleReporter.scala:50) at scala.tools.nsc.interpreter.ReplReporter.print(ReplReporter.scala:50) at scala.tools.nsc.reporters.ConsoleReporter.display(ConsoleReporter.scala:69) at scala.tools.nsc.reporters.AbstractReporter.info0(AbstractReporter.scala:48) at scala.tools.nsc.reporters.AbstractReporter.info0(AbstractReporter.scala:16) at scala.reflect.internal.Reporter.error(Reporting.scala:82) at scala.tools.nsc.interpreter.ReplReporter.scala$tools$nsc$interpreter$ReplReporter$$super$error(ReplReporter.scala:33) at scala.tools.nsc.interpreter.ReplReporter$$anonfun$error$1.apply(ReplReporter.scala:33) at scala.tools.nsc.interpreter.ReplReporter$$anonfun$error$1.apply(ReplReporter.scala:33) at scala.tools.nsc.interpreter.ReplReporter.withoutTruncating(ReplReporter.scala:28) at scala.tools.nsc.interpreter.ReplReporter.error(ReplReporter.scala:33) at scala.tools.nsc.typechecker.Contexts$ImmediateReporter.handleError(Contexts.scala:1377) at scala.tools.nsc.typechecker.Contexts$ContextReporter.issue(Contexts.scala:1254) at scala.tools.nsc.typechecker.Contexts$Context.issue(Contexts.scala:573) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$normalTypedApply$1$1.apply(Typers.scala:4549) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$normalTypedApply$1$1.apply(Typers.scala:4548) at scala.tools.nsc.typechecker.Typers$Typer.onError$3(Typers.scala:4522) at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4548) at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4580) at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5343) ... ... ... at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151) at scala.collection.immutable.List.loop$1(List.scala:173) at scala.collection.immutable.List.mapConserve(List.scala:189) at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3151) at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1921) at scala.collection.AbstractIterator.foreach(Iterator.scala:1336) at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:93) at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1501) at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1486) at scala.tools.nsc.Global$Run.compileSources(Global.scala:1481) at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:435) at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:855) at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:813) at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:1002) at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:997) at scala.tools.nsc.interpreter.IMain.compile(IMain.scala:579) at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:567) at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:565) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:38) at org.apache.zeppelin.spark.SparkInterpreter.interpret(SparkInterpreter.java:964) at org.apache.zeppelin.spark.SparkInterpreter.interpretInput(SparkInterpreter.java:1190) at org.apache.zeppelin.spark.SparkInterpreter.interpret(SparkInterpreter.java:1136) at org.apache.zeppelin.spark.SparkInterpreter.interpret(SparkInterpreter.java:1129) at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:94) at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:495) at org.apache.zeppelin.scheduler.Job.run(Job.java:181) at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:139) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) {code} It looks like somehow scala's ReplReporter.error() is printing newline. -- This message was sent by Atlassian JIRA (v6.3.15#6346)