From fabab5460c6ae45f16353e3e8c31d85826c15f5e Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Thu, 5 Feb 2015 15:27:45 +0530 Subject: [PATCH] CloudStackPrimaryDataStoreLifeCycleImpl: decode path as UTF8 or fallback Signed-off-by: Rohit Yadav (cherry picked from commit 6ddaef7a489603b058d360280fc7c4d5ec367346) Signed-off-by: Rohit Yadav --- .../CloudStackPrimaryDataStoreLifeCycleImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java index ae0d21b4b50..d11342c0331 100644 --- a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java +++ b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackPrimaryDataStoreLifeCycleImpl.java @@ -18,8 +18,10 @@ */ package org.apache.cloudstack.storage.datastore.lifecycle; +import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; +import java.net.URLDecoder; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -182,7 +184,14 @@ public class CloudStackPrimaryDataStoreLifeCycleImpl implements PrimaryDataStore String scheme = uri.getScheme(); String storageHost = uri.getHost(); - String hostPath = uri.getPath(); + String hostPath = null; + try { + hostPath = URLDecoder.decode(uri.getPath(), "UTF-8"); + } catch (UnsupportedEncodingException e) { + } + if (hostPath == null) { // if decoding fails, use getPath() anyway + hostPath = uri.getPath(); + } Object localStorage = dsInfos.get("localStorage"); if (localStorage != null) { hostPath = hostPath.replaceFirst("/", "");