diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java b/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java index 9e8efaa..a099898 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java @@ -862,6 +862,8 @@ Element executeMetadataRequest(String request) throws OlapException { } assert envelope.getLocalName().equals("Envelope"); assert envelope.getNamespaceURI().equals(SOAP_NS); + Element header = + findChild(envelope, SOAP_NS, "Header"); Element body = findChild(envelope, SOAP_NS, "Body"); Element fault = @@ -889,6 +891,16 @@ Element executeMetadataRequest(String request) throws OlapException { + "Request was:\n" + request); } + Element session = + findChild(header, XMLA_NS, "Session"); + if (session != null) { + String sessionId = + session.getAttribute("SessionId"); + if ("".equals(sessionId)) { + sessionId = null; + } + serverInfos.setSessionId(sessionId); + } Element discoverResponse = findChild(body, XMLA_NS, "DiscoverResponse"); Element returnElement =