Uploaded image for project: 'Pentaho Analysis - Mondrian'
  1. Pentaho Analysis - Mondrian
  2. MONDRIAN-679

VisualTotals gives ClassCastException when called via XMLA

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Severity: Unknown
    • Resolution: Fixed
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Notice:
      When an issue is open, the "Fix Version/s" field conveys a target, not necessarily a commitment. When an issue is closed, the "Fix Version/s" field conveys the version that the issue was fixed in.

      Description

      Sergei Mazin wrote:

      I got [an exception] when executed the
      same query above from http://localhost:8080/mondrian/xmlaTest.jsp utility

      <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
      <Command>
      <Statement>
      WITH SET [XL_Row_Dim_0] as 'VisualTotals(Distinct(Hierarchize({
      Ascendants([Customers].[All Customers].[USA].[CA].[Beverly Hills].[Ari
      Tweten]),
      Descendants([Customers].[All Customers].[USA].[CA].[Beverly Hills].[Ari
      Tweten]),
      Ascendants([Customers].[All Customers].[Mexico]),
      Descendants([Customers].[All Customers].[Mexico])
      })))'
      select NON EMPTY
      Hierarchize(Intersect(DrilldownMember({{DrilldownMember({{DrilldownLevel(

      {[C ustomers].[All Customers]}

      )}},

      {[Customers].[All Customers].[USA]}

      )}},

      {[Customers].[All Customers].[USA].[CA]}

      ), [XL_Row_Dim_0])) DIMENSION
      PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS
      from [Sales]
      where [Measures].[Unit Sales]
      </Statement>
      </Command>
      <Properties>
      <PropertyList>
      <Catalog>FoodMart</Catalog>

      <DataSourceInfo>Provider=Mondrian;DataSource=MondrianFoodMart;</DataSourceIn
      fo>
      <Format>Multidimensional</Format>
      <AxisFormat>TupleFormat</AxisFormat>
      </PropertyList>
      </Properties>
      </Execute>

      mondrian.xmla.XmlaException: Mondrian Error:XMLA Execute unparse results
      error
      at mondrian.xmla.XmlaHandler.execute(XmlaHandler.java:704)
      at mondrian.xmla.XmlaHandler.process(XmlaHandler.java:554)
      at mondrian.xmla.impl.DefaultXmlaServlet.handleSoapBody(DefaultXmlaServlet.java:415)
      at mondrian.xmla.XmlaServlet.doPost(XmlaServlet.java:311)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:342)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
      at org.apache.jsp.xmla_jsp._jspService(xmla_jsp.java:68)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
      at java.lang.Thread.run(Thread.java:619)
      Caused by: java.lang.ClassCastException:
      mondrian.olap.fun.VisualTotalsFunDef$VisualTotalMember cannot be cast to
      mondrian.rolap.RolapCubeMember
      at mondrian.rolap.RolapCubeHierarchy$CacheRolapCubeHierarchyMemberReader.readMemberChildren(RolapCubeHierarchy.java:533)
      at mondrian.rolap.RolapCubeHierarchy$CacheRolapCubeHierarchyMemberReader.getMemberChildren(RolapCubeHierarchy.java:646)
      at mondrian.rolap.SmartMemberReader.getMemberChildren(SmartMemberReader.java:176)
      at mondrian.rolap.SmartMemberReader.getMemberChildren(SmartMemberReader.java:166)
      at mondrian.rolap.RolapMember.getPropertyValue(RolapMember.java:619)
      at mondrian.rolap.RolapMember.getPropertyValue(RolapMember.java:545)
      at mondrian.xmla.XmlaHandler$MDDataSet_Multidimensional.writeMember(XmlaHandler.java:2133)
      at mondrian.xmla.XmlaHandler$MDDataSet_Multidimensional.axis(XmlaHandler.java:2102)
      at mondrian.xmla.XmlaHandler$MDDataSet_Multidimensional.axes(XmlaHandler.java:1973)
      at mondrian.xmla.XmlaHandler$MDDataSet_Multidimensional.unparse(XmlaHandler.java:1788)
      at mondrian.xmla.XmlaHandler.execute(XmlaHandler.java:698)
      ... 30 more

      It got fixed by changing file mondrian/rolap/RolapCubeHierarchy.java:

      /* old
      final List<RolapCubeMember> parentRolapCubeMemberList =
      Util.cast(parentMembers);

      for (RolapCubeMember member : parentRolapCubeMemberList)

      { lookup.put( getUniqueNameForMemberWithoutHierarchy( member.getRolapMember()), member); rolapParents.add(member.getRolapMember()); }

      */
      //new
      for (Object o : parentMembers) {
      if(o instanceof VisualTotalMember)

      { // always skip VisualTotalMembers continue; }

      else

      { RolapCubeMember member = (RolapCubeMember)o; lookup.put( getUniqueNameForMemberWithoutHierarchy( member.getRolapMember()), member); rolapParents.add(member.getRolapMember()); }

      }

        Attachments

          Activity

            People

            Assignee:
            jhyde Julian Hyde (Inactive)
            Reporter:
            jhyde Julian Hyde (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: