{"push_id":767719047,"size":6,"distinct_size":4,"ref":"refs/heads/ZEPPELIN-211","head":"a5ae5ec876f0606853197ee46762ddbcab663634","before":"0df1f69f79d509f2013fd045672b587a3be473b3","commits":[{"sha":"7ba743eec77819397460c91b6fa49dfa4604c5de","author":{"email":"d7c666e111347acaaff9ee93dba6b32a6c1a872e@gmail.com","name":"Randy Gelhausen"},"message":"ZEPPELIN-186: Apache Phoenix interpreter\n\nInclude an interpreter for Apache Phoenix\n\nAlmost identical to Hive interpreter. Could/should generic JDBC interpreters be combined in future work?\n\nAuthor: Randy Gelhausen <rgelhau@gmail.com>\nAuthor: = <rgelhau@gmail.com>\n\nCloses #167 from randerzander/phoenix-interpreter and squashes the following commits:\n\n72b5c71 [=] bumped HBase version down to 1.0\nbbaadc3 [=] Switched to Apache artifacts\n0a3f8cf [=] Merge branch 'master' of github.com:apache/incubator-zeppelin into phoenix-interpreter\n060fa44 [Randy Gelhausen] Moved currentStatement and resultSet to finally, added commit call to finally\n531b7b4 [Randy Gelhausen] Moved result set close to finally block\ndf407ec [Randy Gelhausen] Made Update output more clear\n8282cc2 [Randy Gelhausen] fixed handling of null values in PhoenixInterpreter\nb69e7aa [Randy Gelhausen] cleaned up PhoenixInterpreter and tests, switched to execute from executeQuery\nb7ad803 [Randy Gelhausen] Merge branch 'master' of github.com:apache/incubator-zeppelin into phoenix-interpreter\n1b24d47 [Randy Gelhausen] Merge branch 'master' of github.com:apache/incubator-zeppelin into phoenix-interpreter\nc99d66d [Randy Gelhausen] added safety call to close() before open, added maxResult check\n8c405a8 [Randy Gelhausen] Fixed pom for phoenix jdbc driver dependency inclusion, updated interpreter properties\n0f8e18b [Randy Gelhausen] fixed old reference to ZK_URL\n6e816bc [Randy Gelhausen] Updated zeppelin-site.xml.template to include PhoenixInterpreter, changed Phoenix properties from zk.url to phoenix.url\nd7716cc [Randy Gelhausen] fixed hive.PhoenixInterpreter to phoenix.PhoenixInterpreter, set phoenix magic to pql\n1d568ed [Randy Gelhausen] Added Phoenix to ZeppelinConfiguration.java\n96db8b5 [Randy Gelhausen] fixing default phoenix.url\n2f3fb54 [Randy Gelhausen] initial commit for phoenix interpreter","distinct":false,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/7ba743eec77819397460c91b6fa49dfa4604c5de"},{"sha":"7ddf810ef802cc449c1f5cd6e9664883f1a5477e","author":{"email":"8fa4ce07cf73f68fea8550c083913d8b7e0d02e3@gmail.com","name":"eranwitkon"},"message":"Add argument check for option and properties to protect from NPE\n\nHere is the repro steps:\n    1) run zeppelin\n    2) using some REST client call the update settings with the following JSON\n    {\"id\":\"2AVJY1M6F\",\"name\":\"md\",\"group\":\"md\",\"properties\":{\"propname\":\"propvalue\"},\"interpreterGroup\":[{\"class\":\"org.apache.zeppelin.markdown.Markdown\",\"name\":\"md\"}]}\n    - NOTE that I intentionally omitted the option part\n    3) Now look at the log file:\n    INFO [2015-08-19 09:14:13,106] ({qtp2095490653-44}\n    InterpreterRestApi.java[updateSetting]:111) - Update interpreterSetting\n    2AVGGNEKP\n     WARN [2015-08-19 09:14:13,121] ({qtp2095490653-44}\n    LogUtils.java[doLog]:452) - Application {\n    http://rest.zeppelin.apache.org/}NotebookRestApi has thrown exception,\n    unwinding now\n    org.apache.cxf.interceptor.Fault\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128)\n    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:192)\n    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:100)\n    at\n    org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:57)\n    at\n    org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:93)\n    at\n    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)\n    at\n    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)\n    at\n    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)\n    at\n    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:223)\n    at javax.servlet.http.HttpServlet.service(HttpServlet.java:598)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)\n    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)\n    at\n    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)\n    at org.apache.zeppelin.server.CorsFilter.doFilter(CorsFilter.java:53)\n    at\n    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1467)\n    at\n    org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)\n    at\n    org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)\n    at\n    org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)\n    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)\n    at\n    org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)\n    at\n    org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)\n    at\n    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)\n    at\n    org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)\n    at\n    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)\n    at org.eclipse.jetty.server.Server.handle(Server.java:370)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)\n    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)\n    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)\n    at\n    org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)\n    at\n    org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)\n    at\n    org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)\n    at\n    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)\n    at\n    org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)\n    at java.lang.Thread.run(Thread.java:745)\n    Caused by: java.lang.NullPointerException\n    at\n    org.apache.zeppelin.interpreter.InterpreterFactory.createInterpreterGroup(InterpreterFactory.java:361)\n    at\n    org.apache.zeppelin.interpreter.InterpreterFactory.setPropertyAndRestart(InterpreterFactory.java:515)\n    at\n    org.apache.zeppelin.rest.InterpreterRestApi.updateSetting(InterpreterRestApi.java:116)\n    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n    at\n    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n    at\n    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n    at java.lang.reflect.Method.invoke(Method.java:497)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)\n    ... 40 more\n     WARN [2015-08-19 09:14:13,239] ({qtp2095490653-44}\n    PhaseInterceptorChain.java[unwind]:444) - Exception in handleFault on\n    interceptor\n    org.apache.cxf.binding.xml.interceptor.XMLFaultOutInterceptor51637100\n    org.apache.cxf.interceptor.Fault\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128)\n    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:192)\n    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:100)\n    at\n    org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:57)\n    at\n    org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:93)\n    at\n    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)\n    at\n    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)\n    at\n    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)\n    at\n    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:223)\n    at javax.servlet.http.HttpServlet.service(HttpServlet.java:598)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)\n    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)\n    at\n    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)\n    at org.apache.zeppelin.server.CorsFilter.doFilter(CorsFilter.java:53)\n    at\n    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1467)\n    at\n    org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)\n    at\n    org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)\n    at\n    org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)\n    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)\n    at\n    org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)\n    at\n    org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)\n    at\n    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)\n    at\n    org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)\n    at\n    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)\n    at org.eclipse.jetty.server.Server.handle(Server.java:370)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)\n    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)\n    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)\n    at\n    org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)\n    at\n    org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)\n    at\n    org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)\n    at\n    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)\n    at\n    org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)\n    at java.lang.Thread.run(Thread.java:745)\n    Caused by: java.lang.NullPointerException\n    at\n    org.apache.zeppelin.interpreter.InterpreterFactory.createInterpreterGroup(InterpreterFactory.java:361)\n    at\n    org.apache.zeppelin.interpreter.InterpreterFactory.setPropertyAndRestart(InterpreterFactory.java:515)\n    at\n    org.apache.zeppelin.rest.InterpreterRestApi.updateSetting(InterpreterRestApi.java:116)\n    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n    at\n    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n    at\n    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n    at java.lang.reflect.Method.invoke(Method.java:497)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)\n    ... 40 more\n    ERROR [2015-08-19 09:14:13,242] ({qtp2095490653-44}\n    AbstractFaultChainInitiatorObserver.java[onMessage]:115) - Error occurred\n    during error handling, give up!\n    org.apache.cxf.interceptor.Fault\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128)\n    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:192)\n    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:100)\n    at\n    org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:57)\n    at\n    org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:93)\n    at\n    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)\n    at\n    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)\n    at\n    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)\n    at\n    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:223)\n    at javax.servlet.http.HttpServlet.service(HttpServlet.java:598)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)\n    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)\n    at\n    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)\n    at org.apache.zeppelin.server.CorsFilter.doFilter(CorsFilter.java:53)\n    at\n    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1467)\n    at\n    org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)\n    at\n    org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)\n    at\n    org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)\n    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)\n    at\n    org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)\n    at\n    org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)\n    at\n    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)\n    at\n    org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)\n    at\n    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)\n    at org.eclipse.jetty.server.Server.handle(Server.java:370)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)\n    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)\n    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)\n    at\n    org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)\n    at\n    org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)\n    at\n    org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)\n    at\n    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)\n    at\n    org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)\n    at java.lang.Thread.run(Thread.java:745)\n    Caused by: java.lang.NullPointerException\n    at\n    org.apache.zeppelin.interpreter.InterpreterFactory.createInterpreterGroup(InterpreterFactory.java:361)\n    at\n    org.apache.zeppelin.interpreter.InterpreterFactory.setPropertyAndRestart(InterpreterFactory.java:515)\n    at\n    org.apache.zeppelin.rest.InterpreterRestApi.updateSetting(InterpreterRestApi.java:116)\n    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n    at\n    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n    at\n    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n    at java.lang.reflect.Method.invoke(Method.java:497)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)\n    ... 40 more\n     WARN [2015-08-19 09:14:13,245] ({qtp2095490653-44}\n    ServletHandler.java[doHandle]:561) - /api/interpreter/setting/2AVGGNEKP\n    java.lang.RuntimeException: org.apache.cxf.interceptor.Fault\n    at\n    org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116)\n    at\n    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:333)\n    at\n    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)\n    at\n    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)\n    at\n    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)\n    at\n    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:223)\n    at javax.servlet.http.HttpServlet.service(HttpServlet.java:598)\n    at\n    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)\n    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)\n    at\n    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)\n    at org.apache.zeppelin.server.CorsFilter.doFilter(CorsFilter.java:53)\n    at\n    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1467)\n    at\n    org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)\n    at\n    org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)\n    at\n    org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)\n    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)\n    at\n    org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)\n    at\n    org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)\n    at\n    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)\n    at\n    org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)\n    at\n    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)\n    at org.eclipse.jetty.server.Server.handle(Server.java:370)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)\n    at\n    org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)\n    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)\n    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)\n    at\n    org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)\n    at\n    org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)\n    at\n    org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)\n    at\n    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)\n    at\n    org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)\n    at java.lang.Thread.run(Thread.java:745)\n    Caused by: org.apache.cxf.interceptor.Fault\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128)\n    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:192)\n    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:100)\n    at\n    org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:57)\n    at\n    org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:93)\n    at\n    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)\n    ... 35 more\n    Caused by:* java.lang.NullPointerException*\n    at\n    org.apache.zeppelin.interpreter.InterpreterFactory.createInterpreterGroup(InterpreterFactory.java:361)\n    at\n    org.apache.zeppelin.interpreter.InterpreterFactory.setPropertyAndRestart(InterpreterFactory.java:515)\n    at\n    org.apache.zeppelin.rest.InterpreterRestApi.updateSetting(InterpreterRestApi.java:116)\n    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n    at\n    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n    at\n    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n    at java.lang.reflect.Method.invoke(Method.java:497)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)\n    at\n    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)\n    ... 40 more\n\n    This is because we are trying to access the option variable when it is NULL\nThis PR fixes that and add test to check it.\nThis replace PR 223.\nReady for review\n\nAuthor: eranwitkon <goi.cto@gmail.com>\n\nCloses #241 from eranwitkon/255 and squashes the following commits:\n\nb463100 [eranwitkon] Remove unit test\n6075a66 [eranwitkon] fix CI problem\n1aa806f [eranwitkon] Fix CI problem\nda0717f [eranwitkon] Fix getRegisteredInterpreterList, avoid adding null to the list when class name from config is not registered (only interpreters available on the disk (has interpreter folder) are registered. findRegisteredInterpreterByClassName return null when class name not found. (cherry picked from commit 6724e54)\nf863871 [eranwitkon] Add argument check for option and properties to protect from NPE (cherry picked from commit 39ac2c1)","distinct":false,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/7ddf810ef802cc449c1f5cd6e9664883f1a5477e"},{"sha":"bc288f635a2b3c41e9bf4737676964bc1dcbf7eb","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-211: Add Geode Interpreter remote completer","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/bc288f635a2b3c41e9bf4737676964bc1dcbf7eb"},{"sha":"603254ec13f9ee4808a882e3a9f60bb72b34c758","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-211: Replace sysout prints by logs","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/603254ec13f9ee4808a882e3a9f60bb72b34c758"},{"sha":"328c7882b3e6c6dd0048443f265d9f1f9fe5d405","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-211: Exclude **/*.keywords from RAT check. *.keywords files contain completion keywords like OQL or SQL","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/328c7882b3e6c6dd0048443f265d9f1f9fe5d405"},{"sha":"a5ae5ec876f0606853197ee46762ddbcab663634","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-211: Fix cursor at buffer edge issue","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/a5ae5ec876f0606853197ee46762ddbcab663634"}]}