{"push_id":767716930,"size":13,"distinct_size":11,"ref":"refs/heads/ZEPPELIN-215","head":"4d58622f06a2eac74eb66ec9322c8617cd7b048c","before":"ce1a390d47a54be91b348497f49aa5c066ac0e34","commits":[{"sha":"703b47f79bc5b889199fb6dbaac559aed74df0e1","author":{"email":"55238439fbb551642cbe2b1dbc1f2f8b69bc7694@gmail.com","name":"joelz"},"message":"Configurable Origins and small configuration fixes\n\nThis makes it configurable to specify multiple origins as allowed (default only local origin is allowed). Wildcard origin will not be supported as it is a security vulnerability.\nIt adds a compatibility check in configuration for windows paths.\nUpgrades servlet config to add httponly and secure which will secure session cookies if used.\n\nAuthor: joelz <djoelz@gmail.com>\nAuthor: djoelz <joelz@microsoft.com>\n\nCloses #235 from djoelz/master and squashes the following commits:\n\n989f1e0 [joelz] Retrying build as it seems ZeppelinIT failed for not reason.\n625b54e [joelz] Fixing unit test that reads from a file but initializes to a default value and hence the configuration is present.\ne9d8384 [joelz] Retrying due to git download issue with build\n2887f0d [joelz] Renaming tests to singular name so plugin can detect and run\n9260d5d [joelz] Fixing adding the origin header for get and post tests.\nb7bb7bf [joelz] Fixing Styling\nb2b418a [joelz] Fixing cross origin bug for rest calls that allow a malicious user to issue requests from a site other than the zeppelin server. Adding unit tests and a dependency to mockito to the server project (please comment if that is ok or if there is another preferred mocking framework). Also upgrading the servelet version from 2.5 to 3.0 as this also fixes a security vulnerability with respect to httonly cookies.\n4ae9129 [joelz] Fixing null reference\n3795de7 [joelz] Fixing cross origin bug for rest calls that allow a malicious user to issue requests from a site other than the zeppelin server. Adding unit tests and a dependency to mockito to the server project (please comment if that is ok or if there is another preferred mocking framework). Also upgrading the servelet version from 2.5 to 3.0 as this also fixes a security vulnerability with respect to httonly cookies.\nbcb1ac1 [joelz] Fixing cross origin bug for rest calls that allow a malicious user to issue requests from a site other than the zeppelin server. Adding unit tests and a dependency to mockito to the server project (please comment if that is ok or if there is another preferred mocking framework). Also upgrading the servelet version from 2.5 to 3.0 as this also fixes a security vulnerability with respect to httonly cookies.\n3d6ce2e [joelz] Fixing cross origin bug for rest calls that allow a malicious user to issue requests from a site other than the zeppelin server. Adding unit tests and a dependency to mockito to the server project (please comment if that is ok or if there is another preferred mocking framework). Also upgrading the servelet version from 2.5 to 3.0 as this also fixes a security vulnerability with respect to httonly cookies.\n1f851c0 [joelz] Fixing cross origin bug for rest calls that allow a malicious user to issue requests from a site other than the zeppelin server. Adding unit tests and a dependency to mockito to the server project (please comment if that is ok or if there is another preferred mocking framework). Also upgrading the servelet version from 2.5 to 3.0 as this also fixes a security vulnerability with respect to httonly cookies.\n7ecf7e9 [joelz] Merge branch 'master' of https://github.com/djoelz/incubator-zeppelin\nfaa6204 [joelz] Merge branch 'apache-master'\n52eb1bd [joelz] Merge branch 'master' of https://github.com/apache/incubator-zeppelin into apache-master\n5ff1a47 [joelz] Merge branch 'masterOrigin'\n47902a6 [joelz] Fixing cross origin bug for rest calls that allow a malicious user to issue requests from a site other than the zeppelin server. Adding unit tests and a dependency to mockito to the server project (please comment if that is ok or if there is another preferred mocking framework). Also upgrading the servelet version from 2.5 to 3.0 as this also fixes a security vulnerability with respect to httonly cookies.\na00adc2 [djoelz] Merge pull request #1 from apache/master\ndf324de [joelz] Fixing cross origin bug for rest calls that allow a malicious user to issue requests from a site other than the zeppelin server. Adding unit tests and a dependency to mockito to the server project (please comment if that is ok or if there is another preferred mocking framework). Also upgrading the servelet version from 2.5 to 3.0 as this also fixes a security vulnerability with respect to httonly cookies.\ncecbab8 [joelz] Fixing cross origin bug for rest calls that allow a malicious user to issue requests from a site other than the zeppelin server. Adding unit tests and a dependency to mockito to the server project (please comment if that is ok or if there is another preferred mocking framework). Also upgrading the servelet version from 2.5 to 3.0 as this also fixes a security vulnerability with respect to httonly cookies.\n61e857d [joelz] Fixing Rest request lack of Origin validation bug, Added tests that use Mockito (unit test framework) and forces the servlet to use version 3.0 instead of 2.5\n08ff369 [djoelz] unecessary file\n013f22d [joelz] Fixing issue with ZEPPELIN-173: Zeppelin websocket server is vulnerable to Cross-Site WebSocket Hijacking\nea54b55 [joelz] Fixing issue with ZEPPELIN-173: Zeppelin websocket server is vulnerable to Cross-Site WebSocket Hijacking","distinct":false,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/703b47f79bc5b889199fb6dbaac559aed74df0e1"},{"sha":"cbef1be485329357f9540e1efb64e5bd5bdcf792","author":{"email":"4da5df531440d1dbedd1267c7a26fcb404e41cbf@gmail.com","name":"Prabhjyot Singh"},"message":"ZEPPELIN-247: fix; navbar.controller.js used to assumes WebSocket connection as disconnected.\n\nZEPPELIN-247: fix; navbar.controller.js used to assumes WebSocket connection as disconnected.\nIt should get the state from WebSocketService.\n\nAuthor: Prabhjyot Singh <prabhjyotsingh@gmail.com>\n\nCloses #236 from prabhjyotsingh/ZEPPELIN-247 and squashes the following commits:\n\n1646530 [Prabhjyot Singh] ZEPPELIN-247: fix; navbar.controller.js used to assumes WebSocket connection as disconnected. It should get the state from WebSocketService.","distinct":false,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/cbef1be485329357f9540e1efb64e5bd5bdcf792"},{"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":true,"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":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/7ddf810ef802cc449c1f5cd6e9664883f1a5477e"},{"sha":"9253a6809db9c2c9bb3a38b72f093d1bb210c5a1","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-215: PostgreSQL completer - initial implementation","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/9253a6809db9c2c9bb3a38b72f093d1bb210c5a1"},{"sha":"f6ce3801e2e8e208293571aa292476eebee9bab6","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-215: Use JDBC.setMastRows(maxResults) to restrict the size of the displied rows","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/f6ce3801e2e8e208293571aa292476eebee9bab6"},{"sha":"60848a0fb0028e0f45833af204b5a646c8286455","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-215: Add DB schema names to the completion list","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/60848a0fb0028e0f45833af204b5a646c8286455"},{"sha":"67c8800b758e7b468f67cdd12ad55bac5d25510f","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-215: resolve delimiter bug","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/67c8800b758e7b468f67cdd12ad55bac5d25510f"},{"sha":"11702897149d256607cd43d93bd8af8c1146c730","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-215: clean logging messages","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/11702897149d256607cd43d93bd8af8c1146c730"},{"sha":"945f4455373effa1aff843a366542152d12f0dab","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-215: Fix a case where the cursor is close after the end of the buffer","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/945f4455373effa1aff843a366542152d12f0dab"},{"sha":"b21a28164e4203bfef9743b6405aaa8a241eb6aa","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-215: Update the auto-complete metadata (schema, tables, columns) on update SQL queries","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/b21a28164e4203bfef9743b6405aaa8a241eb6aa"},{"sha":"6ce1a81383e1b1f892582364570a34e1d2bd68da","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-215: Handle addition and removal of completions on Data Model changes","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/6ce1a81383e1b1f892582364570a34e1d2bd68da"},{"sha":"4d58622f06a2eac74eb66ec9322c8617cd7b048c","author":{"email":"0b970eaaa1d10df4fa777179b56285de7da4b74d@gmail.com","name":"tzolov"},"message":"ZEPPELIN-215: Handle failures during jdbc connectio initialization","distinct":true,"url":"https://api.github.com/repos/tzolov/incubator-zeppelin/commits/4d58622f06a2eac74eb66ec9322c8617cd7b048c"}]}