Greg Senia created ZEPPELIN-1516:
------------------------------------

             Summary: NPE LivySparkSQLInterpreter thrown with %livy.sql 
interpreter function
                 Key: ZEPPELIN-1516
                 URL: https://issues.apache.org/jira/browse/ZEPPELIN-1516
             Project: Zeppelin
          Issue Type: Bug
          Components: livy-interpreter
    Affects Versions: 0.6.1, 0.6.0, 0.7.0
            Reporter: Greg Senia
            Priority: Blocker


The LivySparkSQLInterpreter class does not correctly process the userSessionMap 
throwing back an NPE as show below. I determined this by adding a bunch of 
debug statements inside of the code before making the code operate more like 
LivySparkRInterpreter and LivyPySparkInterpreter. This error keeps %livy.sql 
from functioning in any way shape or form both on 0.6.0, 0.6.1 and 0.7.0. 

LivyPySparkInterpreter code snippit:
public class LivyPySparkInterpreter extends Interpreter {

  Logger LOGGER = LoggerFactory.getLogger(LivyPySparkInterpreter.class);

  protected Map<String, Integer> userSessionMap;
  protected LivyHelper livyHelper;

  public LivyPySparkInterpreter(Properties property) {
    super(property);
    userSessionMap = new HashMap<>();
    livyHelper = new LivyHelper(property);
  }

LivySparkRInterpreter code snippit:
public class LivySparkRInterpreter extends Interpreter {

  Logger LOGGER = LoggerFactory.getLogger(LivySparkRInterpreter.class);

  protected Map<String, Integer> userSessionMap;
  private LivyHelper livyHelper;

  public LivySparkRInterpreter(Properties property) {
    super(property);
    userSessionMap = new HashMap<>();
    livyHelper = new LivyHelper(property);
  }

Broken LivySparkSQLInterpreter snippit:
public class LivySparkSQLInterpreter extends Interpreter {

  Logger LOGGER = LoggerFactory.getLogger(LivySparkSQLInterpreter.class);

  protected Map<String, Integer> userSessionMap;
  private LivyHelper livyHelper;

  public LivySparkSQLInterpreter(Properties property) {
    super(property);
    livyHelper = new LivyHelper(property);
    userSessionMap = LivySparkInterpreter.getUserSessionMap();

Working LivySparkSQLInterpreter snippit:
public class LivySparkSQLInterpreter extends Interpreter {

  Logger LOGGER = LoggerFactory.getLogger(LivySparkSQLInterpreter.class);

  protected Map<String, Integer> userSessionMap;
  private LivyHelper livyHelper;

  public LivySparkSQLInterpreter(Properties property) {
    super(property);
    livyHelper = new LivyHelper(property);
    userSessionMap = new HashMap<>();
  }


ERROR [2016-09-29 23:44:30,891] ({pool-2-thread-2} 
LivySparkSQLInterpreter.java[interpret]:119) - Exception in 
LivySparkSQLInterpreter while interpret 
java.lang.NullPointerException 
        at 
org.apache.zeppelin.livy.LivySparkSQLInterpreter.interpret(LivySparkSQLInterpreter.java:60)
        at 
org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:94)
 
        at 
org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:390)
 
        at org.apache.zeppelin.scheduler.Job.run(Job.java:176) 
        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) 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to