Pentaho Analysis - Mondrian
  1. Pentaho Analysis - Mondrian
  2. MONDRIAN-750

View model with Analyzer where model contains multiple hierarchies beneath a single dimension throws exception

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 3.2.0 GA (3.6.0 GA Suite Release)
    • Component/s: None
    • Labels:
      None
    • QA Validation Status:
      Not Yet Validated
    • CI Build:
      NIGHTLY BUILD FROM 6_1

      Description

      To reproduce:

      Using Agile BI and a valid Model in the Modeler perspective:

      1) Create a Dimension with two hierarchies, each with a single level.
      2) View this with Analyzer
      3) Add the Dimension level items to the dice and slice

      You should see the following exception:

      java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: mondrian.olap.MondrianException: Mondrian Error:The 'Dt' dimension contains more than one hierarchy, therefore the hierarchy must be explicitly specified.
      at com.pentaho.analyzer.report.ReportRequestService.get(SourceFile:199)
      at com.pentaho.analyzer.content.a.yl.px(SourceFile:222)
      at com.pentaho.analyzer.content.a.gm.lc(SourceFile:195)
      at com.pentaho.analyzer.content.AnalyzerContentGenerator.createContent(SourceFile:165)
      at org.pentaho.platform.web.servlet.GenericServlet.doGet(GenericServlet.java:256)
      at org.pentaho.platform.web.servlet.GenericServlet.doPost(GenericServlet.java:77)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
      at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
      at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.pentaho.platform.web.http.security.SecurityStartupFilter.doFilter(SecurityStartupFilter.java:108)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.pentaho.platform.web.http.security.RequestParameterAuthenticationFilter.doFilter(RequestParameterAuthenticationFilter.java:169)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)
      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278)
      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.pentaho.platform.web.http.security.HttpSessionReuseDetectionFilter.doFilter(HttpSessionReuseDetectionFilter.java:134)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
      at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
      at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
      at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
      at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
      at org.pentaho.platform.web.http.filters.SystemStatusFilter.doFilter(SystemStatusFilter.java:60)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
      at org.pentaho.platform.web.http.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:113)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:326)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
      at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
      at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
      Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: mondrian.olap.MondrianException: Mondrian Error:The 'Dt' dimension contains more than one hierarchy, therefore the hierarchy must be explicitly specified.
      at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
      at java.util.concurrent.FutureTask.get(Unknown Source)
      at com.pentaho.analyzer.report.ReportRequestService.get(SourceFile:157)
      ... 62 more
      Caused by: java.lang.RuntimeException: mondrian.olap.MondrianException: Mondrian Error:The 'Dt' dimension contains more than one hierarchy, therefore the hierarchy must be explicitly specified.
      at com.pentaho.analyzer.service.impl.AnalysisAreaManager.executeQuery(SourceFile:271)
      at com.pentaho.analyzer.report.ReportManagerImpl.parseAndExecuteMDX(SourceFile:310)
      at com.pentaho.analyzer.report.ReportManagerImpl.getCVResultSet(SourceFile:369)
      at com.pentaho.analyzer.report.ReportManagerImpl.runReport(SourceFile:116)
      at com.pentaho.analyzer.report.ReportManagerImpl.runReport(SourceFile:87)
      at com.pentaho.analyzer.report.ReportRequestService$yf.fj(SourceFile:250)
      at com.pentaho.analyzer.report.ReportRequestService$yf.call(SourceFile:241)
      at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: mondrian.olap.MondrianException: Mondrian Error:The 'Dt' dimension contains more than one hierarchy, therefore the hierarchy must be explicitly specified.
      at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:818)
      at mondrian.calc.impl.AbstractExpCompiler.compileHierarchy(AbstractExpCompiler.java:220)
      at mondrian.olap.fun.HierarchyCurrentMemberFunDef.compileCall(HierarchyCurrentMemberFunDef.java:43)
      at mondrian.mdx.ResolvedFunCall.accept(ResolvedFunCall.java:152)
      at mondrian.calc.impl.AbstractExpCompiler.compile(AbstractExpCompiler.java:80)
      at mondrian.calc.impl.AbstractExpCompiler.compileMember(AbstractExpCompiler.java:162)
      at mondrian.olap.fun.MemberOrderKeyFunDef.compileCall(MemberOrderKeyFunDef.java:44)
      at mondrian.mdx.ResolvedFunCall.accept(ResolvedFunCall.java:152)
      at mondrian.calc.impl.AbstractExpCompiler.compile(AbstractExpCompiler.java:80)
      at mondrian.calc.impl.AbstractExpCompiler.compileScalar(AbstractExpCompiler.java:445)
      at mondrian.olap.fun.OrderFunDef.buildKeySpecList(OrderFunDef.java:129)
      at mondrian.olap.fun.OrderFunDef.compileCall(OrderFunDef.java:39)
      at mondrian.mdx.ResolvedFunCall.accept(ResolvedFunCall.java:152)
      at mondrian.calc.impl.AbstractExpCompiler.compile(AbstractExpCompiler.java:80)
      at mondrian.olap.Query.compileExpression(Query.java:1262)
      at mondrian.rolap.RolapEvaluatorRoot.getCompiled(RolapEvaluatorRoot.java:126)
      at mondrian.rolap.RolapNamedSetEvaluator.ensureList(RolapNamedSetEvaluator.java:96)
      at mondrian.rolap.RolapNamedSetEvaluator.evaluateMemberIterable(RolapNamedSetEvaluator.java:64)
      at mondrian.mdx.NamedSetExpr$2.evaluateMemberIterable(NamedSetExpr.java:122)
      at mondrian.calc.impl.AbstractMemberIterCalc.evaluate(AbstractMemberIterCalc.java:52)
      at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:732)
      at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:575)
      at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:541)
      at mondrian.rolap.RolapResult.(RolapResult.java:273)
      at mondrian.rolap.RolapConnection.execute(RolapConnection.java:593)
      at com.pentaho.analyzer.service.impl.AnalysisAreaManager.executeQuery(SourceFile:263)
      ... 11 more

        Activity

        Hide
        Curtis Boyden added a comment -
        Added a screenshot of my sample model for reference
        Show
        Curtis Boyden added a comment - Added a screenshot of my sample model for reference
        Hide
        Curtis Boyden added a comment -
        Added a screenshot of my Analyzer view for reference.
        Show
        Curtis Boyden added a comment - Added a screenshot of my Analyzer view for reference.
        Hide
        Will Gorman added a comment -
        Fixed in trunk, change #13653 and in 3.2, change #13654 . We won't be able to test this until the next build of Mondrian makes it into Agile BI, probably Tuesday afternoon.
        Show
        Will Gorman added a comment - Fixed in trunk, change #13653 and in 3.2, change #13654 . We won't be able to test this until the next build of Mondrian makes it into Agile BI, probably Tuesday afternoon.
        Hide
        Ruth Cook added a comment -
        validated by adding a dimension, hierarchy and level to a hypersonic DB (defect did not state which DB) then drag & drop to the analyzer report and I did not get an exception. the unsaved report displayed all of the fields correctly,'


        750 is resolved
        Show
        Ruth Cook added a comment - validated by adding a dimension, hierarchy and level to a hypersonic DB (defect did not state which DB) then drag & drop to the analyzer report and I did not get an exception. the unsaved report displayed all of the fields correctly,' 750 is resolved
        Hide
        Ruth Cook added a comment -
        validated & closed
        Show
        Ruth Cook added a comment - validated & closed
        Hide
        Will Gorman added a comment -
        I've also updated pentaho-metadata to not include the name attribute in a hierarchy if it is identical to the dimension name, this way we avoid any other potential errors that might be lingering related to explicitly named default hierarchies.
        Show
        Will Gorman added a comment - I've also updated pentaho-metadata to not include the name attribute in a hierarchy if it is identical to the dimension name, this way we avoid any other potential errors that might be lingering related to explicitly named default hierarchies.

          People

          • Assignee:
            Ruth Cook
            Reporter:
            Curtis Boyden
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: