[ 
https://issues.apache.org/jira/browse/JCLOUDS-562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Everett Toews updated JCLOUDS-562:
----------------------------------

    Description: 
1. Create a container.
2. Upload an object with a space in the object name.
3. Run code similar to what's below.

{code}
   private void listContainersAndObjects() {
      ContainerApi containerApi = swiftApi.containerApiInRegion("DFW");

      for (Container container: containerApi.list().toList()) {
         System.out.println(container.getName());

         ObjectApi objectApi = swiftApi.objectApiInRegionForContainer("DFW", 
container.getName());

         for (SwiftObject object: objectApi.list()) {
            System.out.println("  " + object.getName());
         }
      }
   }
{code}

It causes the URISyntaxException below.

{code}
java.lang.IllegalArgumentException
  at java.net.URI.create(URI.java:841)
  at 
org.jclouds.openstack.swift.v1.functions.ParseObjectListFromResponse$ToSwiftObject.apply(ParseObjectListFromResponse.java:77)
  at 
org.jclouds.openstack.swift.v1.functions.ParseObjectListFromResponse$ToSwiftObject.apply(ParseObjectListFromResponse.java:68)
  at 
com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:582)
  at 
com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
  at com.rackspace.RCCCSolution.listContainersAndObjects(RCCCSolution.java:48)
  at com.rackspace.RCCCSolution.main(RCCCSolution.java:21)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:597)
  at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.net.URISyntaxException: Illegal character in path at index 105: 
https://storage101.dfw1.clouddrive.com/v1/xxx/Trove/Open Cluster.txt
  at java.net.URI$Parser.fail(URI.java:2810)
  at java.net.URI$Parser.checkChars(URI.java:2983)
  at java.net.URI$Parser.parseHierarchical(URI.java:3067)
  at java.net.URI$Parser.parse(URI.java:3015)
  at java.net.URI.<init>(URI.java:577)
  at java.net.URI.create(URI.java:839)
  ... 11 more
{code}

  was:
1. Create a container.
2. Upload an object with a space in the object name.
3. Run code similar to what's below.

{code}
   private void listContainersAndObjects() {
      ContainerApi containerApi = swiftApi.containerApiInRegion("DFW");

      for (Container container: containerApi.list().toList()) {
         System.out.println(container.getName());

         ObjectApi objectApi = swiftApi.objectApiInRegionForContainer("DFW", 
container.getName());

         for (SwiftObject object: objectApi.list()) {
            System.out.println("  " + object.getName());
         }
      }
   }
{code}

It causes the URISyntaxException below.

{code}
java.lang.IllegalArgumentException
  at java.net.URI.create(URI.java:841)
  at 
org.jclouds.openstack.swift.v1.functions.ParseObjectListFromResponse$ToSwiftObject.apply(ParseObjectListFromResponse.java:77)
  at 
org.jclouds.openstack.swift.v1.functions.ParseObjectListFromResponse$ToSwiftObject.apply(ParseObjectListFromResponse.java:68)
  at 
com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:582)
  at 
com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
  at com.rackspace.RCCCSolution.listContainersAndObjects(RCCCSolution.java:48)
  at com.rackspace.RCCCSolution.main(RCCCSolution.java:21)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:597)
  at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.net.URISyntaxException: Illegal character in path at index 105: 
https://storage101.dfw1.clouddrive.com/v1/xxx/Trove%20/Open Cluster.txt
  at java.net.URI$Parser.fail(URI.java:2810)
  at java.net.URI$Parser.checkChars(URI.java:2983)
  at java.net.URI$Parser.parseHierarchical(URI.java:3067)
  at java.net.URI$Parser.parse(URI.java:3015)
  at java.net.URI.<init>(URI.java:577)
  at java.net.URI.create(URI.java:839)
  ... 11 more
{code}


> Listing objects with a space in the name with ObjectApi causes 
> URISyntaxException
> ---------------------------------------------------------------------------------
>
>                 Key: JCLOUDS-562
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-562
>             Project: jclouds
>          Issue Type: Bug
>          Components: jclouds-labs-openstack
>    Affects Versions: 1.7.2
>            Reporter: Everett Toews
>            Assignee: Jeremy Daggett
>            Priority: Critical
>              Labels: openstack, rackspace
>
> 1. Create a container.
> 2. Upload an object with a space in the object name.
> 3. Run code similar to what's below.
> {code}
>    private void listContainersAndObjects() {
>       ContainerApi containerApi = swiftApi.containerApiInRegion("DFW");
>       for (Container container: containerApi.list().toList()) {
>          System.out.println(container.getName());
>          ObjectApi objectApi = swiftApi.objectApiInRegionForContainer("DFW", 
> container.getName());
>          for (SwiftObject object: objectApi.list()) {
>             System.out.println("  " + object.getName());
>          }
>       }
>    }
> {code}
> It causes the URISyntaxException below.
> {code}
> java.lang.IllegalArgumentException
>   at java.net.URI.create(URI.java:841)
>   at 
> org.jclouds.openstack.swift.v1.functions.ParseObjectListFromResponse$ToSwiftObject.apply(ParseObjectListFromResponse.java:77)
>   at 
> org.jclouds.openstack.swift.v1.functions.ParseObjectListFromResponse$ToSwiftObject.apply(ParseObjectListFromResponse.java:68)
>   at 
> com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:582)
>   at 
> com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
>   at com.rackspace.RCCCSolution.listContainersAndObjects(RCCCSolution.java:48)
>   at com.rackspace.RCCCSolution.main(RCCCSolution.java:21)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at java.lang.reflect.Method.invoke(Method.java:597)
>   at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
> Caused by: java.net.URISyntaxException: Illegal character in path at index 
> 105: https://storage101.dfw1.clouddrive.com/v1/xxx/Trove/Open Cluster.txt
>   at java.net.URI$Parser.fail(URI.java:2810)
>   at java.net.URI$Parser.checkChars(URI.java:2983)
>   at java.net.URI$Parser.parseHierarchical(URI.java:3067)
>   at java.net.URI$Parser.parse(URI.java:3015)
>   at java.net.URI.<init>(URI.java:577)
>   at java.net.URI.create(URI.java:839)
>   ... 11 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to