From issues-return-16091-archive-asf-public=cust-asf.ponee.io@kylin.apache.org Fri Feb 2 05:33:08 2018 Return-Path: X-Original-To: archive-asf-public@eu.ponee.io Delivered-To: archive-asf-public@eu.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by mx-eu-01.ponee.io (Postfix) with ESMTP id EF1E1180652 for ; Fri, 2 Feb 2018 05:33:08 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id DE90A160C56; Fri, 2 Feb 2018 04:33:08 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id DB29E160C44 for ; Fri, 2 Feb 2018 05:33:07 +0100 (CET) Received: (qmail 5525 invoked by uid 500); 2 Feb 2018 04:33:07 -0000 Mailing-List: contact issues-help@kylin.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@kylin.apache.org Delivered-To: mailing list issues@kylin.apache.org Received: (qmail 5515 invoked by uid 99); 2 Feb 2018 04:33:06 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Feb 2018 04:33:06 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 82D0119A91A for ; Fri, 2 Feb 2018 04:33:06 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -110.31 X-Spam-Level: X-Spam-Status: No, score=-110.31 tagged_above=-999 required=6.31 tests=[ENV_AND_HDR_SPF_MATCH=-0.5, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_SPF_WL=-7.5, USER_IN_WHITELIST=-100, WEIRD_PORT=0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id CLAokx_Auhnn for ; Fri, 2 Feb 2018 04:33:04 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id B1F5A5FBFE for ; Fri, 2 Feb 2018 04:33:03 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 4A818E00FC for ; Fri, 2 Feb 2018 04:33:01 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 0915E21301 for ; Fri, 2 Feb 2018 04:33:00 +0000 (UTC) Date: Fri, 2 Feb 2018 04:33:00 +0000 (UTC) From: "Billy Liu (JIRA)" To: issues@kylin.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (KYLIN-3223) Query for the list of hybrid cubes results in NPE MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/KYLIN-3223?page=3Dcom.atlassian= .jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D1634= 9773#comment-16349773 ]=20 Billy Liu commented on KYLIN-3223: ---------------------------------- Thanks [~seva_ostapenko], I think you have identified the root cause. Do yo= u want to submit a PR? > Query for the list of hybrid cubes results in NPE > ------------------------------------------------- > > Key: KYLIN-3223 > URL: https://issues.apache.org/jira/browse/KYLIN-3223 > Project: Kylin > Issue Type: Bug > Components: REST Service > Affects Versions: v2.2.0 > Environment: HDP 2.5.6, Kylin 2.2 > Reporter: Vsevolod Ostapenko > Assignee: Zhixiong Chen > Priority: Major > > Calling REST API to get the list of hybrid cubes returns stack trace with= NPE exception. > {quote}curl -u ADMIN:KYLIN -X GET -H 'Content-Type: application/json'=C2= =A0 -d {} [http://localhost:7070/kylin/api/hybrids] > {"code":"999","data":null,"msg":null,"stacktrace":"java.lang.NullPointerE= xception\n\tat java.util.concurrent.ConcurrentSkipListMap.doGet(ConcurrentS= kipListMap.java:778)\n\tat java.util.concurrent.ConcurrentSkipListMap.get(C= oncurrentSkipListMap.java:1546)\n\tat org.apache.kylin.metadata.cachesync.S= ingleValueCache.get(SingleValueCache.java:85)\n\tat org.apache.kylin.metada= ta.project.ProjectManager.getProject(ProjectManager.java:172)\n\tat org.apa= che.kylin.rest.util.AclEvaluate.getProjectInstance(AclEvaluate.java:39)\n\t= at org.apache.kylin.rest.util.AclEvaluate.checkProjectReadPermission(AclEva= luate.java:61)\n\tat org.apache.kylin.rest.service.HybridService.listHybrid= s(HybridService.java:115)\n\tat org.apache.kylin.rest.controller.HybridCont= roller.list(HybridController.java:76)\n\tat sun.reflect.NativeMethodAccesso= rImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.inv= oke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAcc= essorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.refl= ect.Method.invoke(Method.java:497)\n\tat org.springframework.web.method.sup= port.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n\tat= org.springframework.web.method.support.InvocableHandlerMethod.invokeForReq= uest(InvocableHandlerMethod.java:133)\n\tat org.springframework.web.servlet= .mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(Servle= tInvocableHandlerMethod.java:97)\n\tat org.springframework.web.servlet.mvc.= method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestM= appingHandlerAdapter.java:827)\n\tat org.springframework.web.servlet.mvc.me= thod.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingH= andlerAdapter.java:738)\n\tat org.springframework.web.servlet.mvc.method.Ab= stractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)\n\t= at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherS= ervlet.java:967)\n\tat org.springframework.web.servlet.DispatcherServlet.do= Service(DispatcherServlet.java:901)\n\tat org.springframework.web.servlet.F= rameworkServlet.processRequest(FrameworkServlet.java:970)\n\tat org.springf= ramework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)\n\ta= t javax.servlet.http.HttpServlet.service(HttpServlet.java:624)\n\tat org.sp= ringframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:84= 6)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:731)\n\tat= org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati= onFilterChain.java:303)\n\tat org.apache.catalina.core.ApplicationFilterCha= in.doFilter(ApplicationFilterChain.java:208)\n\tat org.apache.tomcat.websoc= ket.server.WsFilter.doFilter(WsFilter.java:52)\n\tat org.apache.catalina.co= re.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)= \n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(Application= FilterChain.java:208)\n\tat org.springframework.security.web.FilterChainPro= xy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)\n\tat org.springf= ramework.security.web.access.intercept.FilterSecurityInterceptor.invoke(Fil= terSecurityInterceptor.java:127)\n\tat org.springframework.security.web.acc= ess.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.= java:91)\n\tat org.springframework.security.web.FilterChainProxy$VirtualFil= terChain.doFilter(FilterChainProxy.java:331)\n\tat org.springframework.secu= rity.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFil= ter.java:114)\n\tat org.springframework.security.web.FilterChainProxy$Virtu= alFilterChain.doFilter(FilterChainProxy.java:331)\n\tat org.springframework= .security.web.session.SessionManagementFilter.doFilter(SessionManagementFil= ter.java:137)\n\tat org.springframework.security.web.FilterChainProxy$Virtu= alFilterChain.doFilter(FilterChainProxy.java:331)\n\tat org.springframework= .security.web.authentication.AnonymousAuthenticationFilter.doFilter(Anonymo= usAuthenticationFilter.java:111)\n\tat org.springframework.security.web.Fil= terChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat = org.springframework.security.web.servletapi.SecurityContextHolderAwareReque= stFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\n\tat o= rg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilte= r(FilterChainProxy.java:331)\n\tat org.springframework.security.web.savedre= quest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n\t= at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doF= ilter(FilterChainProxy.java:331)\n\tat org.springframework.security.web.aut= hentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticat= ionFilter.java:215)\n\tat org.springframework.web.filter.OncePerRequestFilt= er.doFilter(OncePerRequestFilter.java:107)\n\tat org.springframework.securi= ty.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:3= 31)\n\tat org.springframework.security.web.authentication.AbstractAuthentic= ationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:= 200)\n\tat org.springframework.security.web.FilterChainProxy$VirtualFilterC= hain.doFilter(FilterChainProxy.java:331)\n\tat org.springframework.security= .web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\n\t= at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doF= ilter(FilterChainProxy.java:331)\n\tat org.springframework.security.web.hea= der.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)\n\tat o= rg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestF= ilter.java:107)\n\tat org.springframework.security.web.FilterChainProxy$Vir= tualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat org.springframewo= rk.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFi= lterInternal(WebAsyncManagerIntegrationFilter.java:56)\n\tat org.springfram= ework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:10= 7)\n\tat org.springframework.security.web.FilterChainProxy$VirtualFilterCha= in.doFilter(FilterChainProxy.java:331)\n\tat org.springframework.security.w= eb.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersist= enceFilter.java:105)\n\tat org.springframework.security.web.FilterChainProx= y$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat org.springfr= amework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.jav= a:214)\n\tat org.springframework.security.web.FilterChainProxy.doFilter(Fil= terChainProxy.java:177)\n\tat org.springframework.web.filter.DelegatingFilt= erProxy.invokeDelegate(DelegatingFilterProxy.java:346)\n\tat org.springfram= ework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:= 262)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter= (ApplicationFilterChain.java:241)\n\tat org.apache.catalina.core.Applicatio= nFilterChain.doFilter(ApplicationFilterChain.java:208)\n\tat com.thetransac= tioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)\n\tat com.thetran= sactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)\n\tat org.apac= he.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterC= hain.java:241)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilt= er(ApplicationFilterChain.java:208)\n\tat org.apache.catalina.core.Standard= WrapperValve.invoke(StandardWrapperValve.java:219)\n\tat org.apache.catalin= a.core.StandardContextValve.invoke(StandardContextValve.java:110)\n\tat org= .apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.j= ava:506)\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHo= stValve.java:169)\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(= ErrorReportValve.java:103)\n\tat org.apache.catalina.valves.AccessLogValve.= invoke(AccessLogValve.java:962)\n\tat org.apache.catalina.core.StandardEngi= neValve.invoke(StandardEngineValve.java:116)\n\tat org.apache.catalina.conn= ector.CoyoteAdapter.service(CoyoteAdapter.java:445)\n\tat org.apache.coyote= .http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)\= n\tat org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(= AbstractProtocol.java:637)\n\tat org.apache.tomcat.util.net.JIoEndpoint$Soc= ketProcessor.run(JIoEndpoint.java:316)\n\tat java.util.concurrent.ThreadPoo= lExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurren= t.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat org.apac= he.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\= n\tat java.lang.Thread.run(Thread.java:745)\n","exception":null,"url":"http= ://lcoalhost:7070/kylin/api/hybrids"} > {quote} > =C2=A0 > If a parameter project without a value is specified, call succeeds. E.g. > {quote}curl -u ADMIN:KYLIN -X GET -H 'Content-Type: application/json'=C2= =A0 -d {}[http://localhost:7070/kylin/api/hybrids?project] > {quote} > Quick look at the HybridService.java suggests that there is a bug in the = code, where the very first line tries to check ACLs on the project using th= e project name, which is NULL, when project parameter is not specified as p= art of the URL. > If parameter is specified without a value, ACL check is not performed, so= it's another bug, as the list of projects is retrieved without read permis= sion checking. -- This message was sent by Atlassian JIRA (v7.6.3#76005)