[
https://issues.apache.org/jira/browse/KYLIN-1464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15184611#comment-15184611
]
hongbin ma commented on KYLIN-1464:
-----------------------------------
add a model and add a cube might be two separate opts. Typically we can iterate
all models under a project without touching the cubes.There is a field in
project instance named "models", which tracks all the models contained by
current project. The code block staring from
https://github.com/binmahone/kylin/blob/2e1d2f6b62903b16b17bd2442e3456107dc0aa6a/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java#L327
might give you the impression that model depends on cube. Actually the block
was for backward compatibility concerning old metadata formats where there was
no "models" field in project instance. The approach was ugly, so the author
wrote TODO at the beginning of it.
> org.apache.kylin.cube.CubeInstance.getDataModelDesc throw
> java.lang.NullPointerException
> ----------------------------------------------------------------------------------------
>
> Key: KYLIN-1464
> URL: https://issues.apache.org/jira/browse/KYLIN-1464
> Project: Kylin
> Issue Type: Bug
> Reporter: yunjiong zhao
> Assignee: yunjiong zhao
> Attachments: KYLIN-1464.patch
>
>
> User report can't see models from Web UI.
> After I check log, I found java.lang.NullPointerException
> {quote}
> 2016-03-02 08:06:59,645 ERROR [http-bio-7070-exec-22]
> controller.BasicController:44 :
> java.lang.NullPointerException
> at
> org.apache.kylin.cube.CubeInstance.getDataModelDesc(CubeInstance.java:128)
> at
> org.apache.kylin.metadata.MetadataManager.getModels(MetadataManager.java:326)
> at
> org.apache.kylin.rest.service.ModelService.listAllModels(ModelService.java:55)
> at
> org.apache.kylin.rest.service.ModelService.getModels(ModelService.java:74)
> at
> org.apache.kylin.rest.service.ModelService$$FastClassByCGLIB$$eb0205be.invoke(<generated>)
> at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> at
> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:618)
> at
> org.apache.kylin.rest.service.ModelService$$EnhancerByCGLIB$$2e750d6d.getModels(<generated>)
> at
> org.apache.kylin.rest.controller.ModelController.getModels(ModelController.java:71)
> at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
> org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
> at
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
> at
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
> at
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
> at
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
> at
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
> at
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
> at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
> at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
> {quote}
> And before that we can see from log why it happens.
> {quote}
> 2016-03-02 08:06:59,238 INFO [http-bio-7070-exec-22]
> cube.CubeDescManager:197 : Reloading Cube Metadata from folder
> _kylin_metadata_qa2(key='/cube_desc')@_kylin_metadata_qa2@hbase
> 2016-03-02 08:06:59,632 ERROR [http-bio-7070-exec-22]
> cube.CubeDescManager:207 : Error loading cube desc /cube_desc/test4.json
> java.lang.IllegalStateException: Derived can only be defined on lookup table,
> cube CubeDesc [name=test4], DimensionDesc
> [name=DEFAULT.SLNG_CATEG_META_LVL2_DERIVED, join=null, hierarchy=null,
> table=DEFAULT.SLNG_CATEG_META_LVL2, column=null, derived=[CATEG_LVL2_NAME,
> META_CATEG_NAME]]
> at
> org.apache.kylin.cube.model.DimensionDesc.init(DimensionDesc.java:111)
> at org.apache.kylin.cube.model.CubeDesc.init(CubeDesc.java:461)
> at
> org.apache.kylin.cube.CubeDescManager.loadCubeDesc(CubeDescManager.java:134)
> at
> org.apache.kylin.cube.CubeDescManager.reloadAllCubeDesc(CubeDescManager.java:205)
> at
> org.apache.kylin.cube.CubeDescManager.<init>(CubeDescManager.java:94)
> at
> org.apache.kylin.cube.CubeDescManager.getInstance(CubeDescManager.java:74)
> at
> org.apache.kylin.cube.CubeInstance.getDescriptor(CubeInstance.java:123)
> at
> org.apache.kylin.cube.CubeInstance.getDataModelDesc(CubeInstance.java:128)
> at
> org.apache.kylin.metadata.MetadataManager.getModels(MetadataManager.java:326)
> at
> org.apache.kylin.rest.service.ModelService.listAllModels(ModelService.java:55)
> at
> org.apache.kylin.rest.service.ModelService.getModels(ModelService.java:74)
> at
> org.apache.kylin.rest.service.ModelService$$FastClassByCGLIB$$eb0205be.invoke(<generated>)
> at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> at
> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:618)
> at
> org.apache.kylin.rest.service.ModelService$$EnhancerByCGLIB$$2e750d6d.getModels(<generated>)
> at
> org.apache.kylin.rest.controller.ModelController.getModels(ModelController.java:71)
> at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
> org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
> at
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:
> {quote}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)