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("" + prop + ">\n");
+ for (String prop : databaseProperties.keySet()) {
+ buf.append(" <");
+ xmlEncode(buf,prop);
+ buf.append(">");
+ xmlEncode(buf, databaseProperties.get(prop));
+ buf.append("");
+ xmlEncode(buf, prop);
+ buf.append(">");
}
// Add the datasource node only if this request requires it.