Skip to content

Mondrian UnsupportedOperationException on XMLAMember.getChildren() #4

@RogerWebb

Description

@RogerWebb

I am attempting to crawl a hierarchy and am getting an error whenever I attempt to call "getChildren" on any XMLAMember. I've tried pulling members from a Hierarchy and a Level. The results are the same.

I've provided what I believe to be all relevant environment/context, but I'm happy to provide anything I'm able on request. From what I can tell, Mondrian is not liking the XML/A request coming from the library. Not sure if it's something that you're aware of, or if it's something that can be worked around.

I appreciate any help you're willing/able to provide.

Python Version: 2.7.3

Package Version (from "pip freeze"): xmla==0.7.2

Mondrian Version: 3.9

Example Code (sensitive information has been replaced. example output below)

import olap.xmla.xmla as xmla

location = "http://mondrian.example.com:8080/pentaho/Xmla"
username = "username"
password = "password"

xmla_provider = xmla.XMLAProvider()

xmla_connection = xmla_provider.connect(location=location, username=username, password=password)

olap_source = xmla_connection.getOLAPSource()

h = olap_source.getCatalog('MyCatalog').getCube('Click').getDimension('[Vendor]').getHierarchy('[Vendor]')

for member in h.getMembers():
    print "Member: %s" % member.getUniqueName()

    if member.hasChildren():
        #ERROR OCCURS WHEN EXECUTING NEXT LINE
        for child in member.getChildren():
            print "Child: %s" % child.getUniqueName()

OUTPUT:

No handlers could be found for logger "olap.xmla.requests_kerberosauth"
Member: [Vendor].[All Vendors]
Traceback (most recent call last):
  File "bug.py", line 19, in <module>
    for child in member.getChildren():
  File "/usr/local/lib/python2.7/dist-packages/olap/xmla/xmla.py", line 276, in getChildren
    more_restrictions={"TREE_OP":TREE_OP.CHILDREN})
  File "/usr/local/lib/python2.7/dist-packages/olap/xmla/xmla.py", line 101, in getSchemaElements
    props = func(r, properties)
  File "/usr/local/lib/python2.7/dist-packages/olap/xmla/connection.py", line 67, in <lambda>
    *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/olap/xmla/connection.py", line 109, in Discover
    raise XMLAException(fault.message, dictify(fault.fault))
olap.xmla.interfaces.XMLAException: Server raised fault: 'XMLA Discover unparse results error'

MONDRIAN Exception (from bi-server/tomcat/logs/pentaho.log)

2015-05-29 10:51:29,814 ERROR [mondrian.xmla.XmlaServlet] Errors when handling XML/A message
mondrian.xmla.XmlaException: Mondrian Error:XMLA Discover unparse results error
        at mondrian.xmla.XmlaHandler.discover(XmlaHandler.java:2873)
        at mondrian.xmla.XmlaHandler.process(XmlaHandler.java:671)
        at mondrian.xmla.impl.DefaultXmlaServlet.handleSoapBody(DefaultXmlaServlet.java:507)
        at mondrian.xmla.XmlaServlet.doPost(XmlaServlet.java:318)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
...
Caused by: java.lang.UnsupportedOperationException
        at mondrian.xmla.RowsetDefinition$SharedDimensionHolderCube.lookupMember(RowsetDefinition.java:6552)
        at mondrian.xmla.RowsetDefinition$MdschemaMembersRowset.outputUniqueMemberName(RowsetDefinition.java:5711)
        at mondrian.xmla.RowsetDefinition$MdschemaMembersRowset.populateCatalog(RowsetDefinition.java:5476)
        at mondrian.xmla.RowsetDefinition$MdschemaMembersRowset.populateImpl(RowsetDefinition.java:5459)
        at mondrian.xmla.Rowset.populate(Rowset.java:222)
        at mondrian.xmla.Rowset.unparse(Rowset.java:194)
        at mondrian.xmla.XmlaHandler.discover(XmlaHandler.java:2867)

...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions