diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java b/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java index 29e6966..cf4b2c6 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java @@ -126,7 +126,7 @@ abstract class XmlaOlap4jConnection implements OlapConnection { * calls as part of <PropertyList/>.
* Can be passed to connection via connection string properties. */ - private final Properties databaseProperties; + private final Map databaseProperties; private boolean autoCommit; private boolean readOnly; @@ -186,7 +186,7 @@ abstract class XmlaOlap4jConnection implements OlapConnection { final Map map = parseConnectString(url, info); - this.databaseProperties = new Properties(); + this.databaseProperties = new HashMap(); for (String infoKey : map.keySet()) { boolean addProperty = true; for (XmlaOlap4jDriver.Property p @@ -739,17 +739,13 @@ public String getRoleName() { return roleName; } - public List getAvailableRoleNames() { + public List getAvailableRoleNames() throws OlapException { Set roleNames = new LinkedHashSet(); - try { - for (Catalog catalog : getOlapCatalogs()) { - List catalogRoles = - ((XmlaOlap4jCatalog) catalog).getAvailableRoles(); - roleNames.addAll(catalogRoles); - } - } catch (OlapException e) { + for (Catalog catalog : getOlapCatalogs()) { + List catalogRoles = + ((XmlaOlap4jCatalog) catalog).getAvailableRoles(); + roleNames.addAll(catalogRoles); } - return new ArrayList(roleNames); } @@ -944,10 +940,14 @@ public String generateRequest( + " \n" + " \n"); - for (Object prop : databaseProperties.keySet()) { - buf.append(" <" + prop + ">"); - xmlEncode(buf, databaseProperties.getProperty(prop.toString())); - buf.append("\n"); + for (String prop : databaseProperties.keySet()) { + buf.append(" <"); + xmlEncode(buf,prop); + buf.append(">"); + xmlEncode(buf, databaseProperties.get(prop)); + buf.append(""); } // Add the datasource node only if this request requires it.