summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2013-05-14 17:17:22 +0200
committerAndrew Branson <andrew.branson@cern.ch>2013-05-14 17:17:22 +0200
commite529c520c79c516eb96a8c1b3c5ae11b53831b77 (patch)
tree87f22148ebfac328b94d00e897be2450b3eb8963
parent46e7aaa7d4bf0b5fe605e3b0d0944362f99bd481 (diff)
URL decode for listClusterContents
-rw-r--r--src/main/java/com/c2kernel/persistency/XMLDBClusterStorage.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/com/c2kernel/persistency/XMLDBClusterStorage.java b/src/main/java/com/c2kernel/persistency/XMLDBClusterStorage.java
index 3a177de..0a6767b 100644
--- a/src/main/java/com/c2kernel/persistency/XMLDBClusterStorage.java
+++ b/src/main/java/com/c2kernel/persistency/XMLDBClusterStorage.java
@@ -20,6 +20,8 @@
package com.c2kernel.persistency;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
import java.util.ArrayList;
import org.xmldb.api.DatabaseManager;
@@ -248,7 +250,7 @@ public class XMLDBClusterStorage extends ClusterStorage {
try {
for (String res: coll.listResources()) {
if (res.startsWith(resPrefix.toString())) {
- String resName = res.substring(resPrefix.length());
+ String resName = URLDecoder.decode(res.substring(resPrefix.length()), "UTF-8");
if (resName.indexOf('.')>-1)
resName = resName.substring(0, resName.indexOf('.'));
if (!contents.contains(resName)) contents.add(resName);
@@ -257,6 +259,9 @@ public class XMLDBClusterStorage extends ClusterStorage {
} catch (XMLDBException e) {
Logger.error(e);
throw new ClusterStorageException("Error listing collection resources for item "+strSysKey);
+ } catch (UnsupportedEncodingException e) {
+ Logger.error(e);
+ throw new ClusterStorageException("Error listing decoding resource name for item "+strSysKey);
}
return contents.toArray(new String[contents.size()]);
}