Repository: jclouds-labs
Updated Branches:
  refs/heads/master d812c9d83 -> 4a1997a5e


JCLOUDS-1005: Percent encode user metadata values


Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/4a1997a5
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/4a1997a5
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/4a1997a5

Branch: refs/heads/master
Commit: 4a1997a5e4e061180d2ae6ab9b34c54fd227fc74
Parents: d812c9d
Author: Andrew Gaul <[email protected]>
Authored: Thu Jun 23 16:17:13 2016 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Thu Jun 23 20:41:28 2016 -0700

----------------------------------------------------------------------
 .../main/java/org/jclouds/b2/binders/UploadFileBinder.java   | 2 +-
 .../org/jclouds/b2/functions/ParseB2ObjectFromResponse.java  | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/4a1997a5/b2/src/main/java/org/jclouds/b2/binders/UploadFileBinder.java
----------------------------------------------------------------------
diff --git a/b2/src/main/java/org/jclouds/b2/binders/UploadFileBinder.java 
b/b2/src/main/java/org/jclouds/b2/binders/UploadFileBinder.java
index 9384033..23ddf05 100644
--- a/b2/src/main/java/org/jclouds/b2/binders/UploadFileBinder.java
+++ b/b2/src/main/java/org/jclouds/b2/binders/UploadFileBinder.java
@@ -39,7 +39,7 @@ public final class UploadFileBinder implements MapBinder {
             .replaceHeader(HttpHeaders.AUTHORIZATION, 
uploadUrl.authorizationToken())
             .replaceHeader(B2Headers.FILE_NAME, escaper.escape(fileName));
       for (Map.Entry<String, String> entry : fileInfo.entrySet()) {
-         builder.replaceHeader(B2Headers.FILE_INFO_PREFIX + entry.getKey(), 
entry.getValue());
+         builder.replaceHeader(B2Headers.FILE_INFO_PREFIX + entry.getKey(), 
escaper.escape(entry.getValue()));
       }
       return (R) builder.build();
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/4a1997a5/b2/src/main/java/org/jclouds/b2/functions/ParseB2ObjectFromResponse.java
----------------------------------------------------------------------
diff --git 
a/b2/src/main/java/org/jclouds/b2/functions/ParseB2ObjectFromResponse.java 
b/b2/src/main/java/org/jclouds/b2/functions/ParseB2ObjectFromResponse.java
index 35fcab9..f98e315 100644
--- a/b2/src/main/java/org/jclouds/b2/functions/ParseB2ObjectFromResponse.java
+++ b/b2/src/main/java/org/jclouds/b2/functions/ParseB2ObjectFromResponse.java
@@ -48,7 +48,13 @@ public final class ParseB2ObjectFromResponse implements 
Function<HttpResponse, B
       ImmutableMap.Builder<String, String> fileInfo = ImmutableMap.builder();
       for (Map.Entry<String, String> entry : from.getHeaders().entries()) {
          if (entry.getKey().regionMatches(true, 0, B2Headers.FILE_INFO_PREFIX, 
0, B2Headers.FILE_INFO_PREFIX.length())) {
-            
fileInfo.put(entry.getKey().substring(B2Headers.FILE_INFO_PREFIX.length()), 
entry.getValue());
+            String value;
+            try {
+               value = URLDecoder.decode(entry.getValue(), "UTF-8");
+            } catch (UnsupportedEncodingException uee) {
+               throw Throwables.propagate(uee);
+            }
+            
fileInfo.put(entry.getKey().substring(B2Headers.FILE_INFO_PREFIX.length()), 
value);
          }
       }
       Date uploadTimestamp = new 
Date(Long.parseLong(from.getFirstHeaderOrNull(B2Headers.UPLOAD_TIMESTAMP)));

Reply via email to