Blob Blame History Raw
--- commons-vfs-2.9.0/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/URLFileName.java.orig	2020-01-22 08:10:15.000000000 -0700
+++ commons-vfs-2.9.0/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/URLFileName.java	2023-06-11 21:45:22.283275117 -0600
@@ -16,8 +16,9 @@
  */
 package org.apache.commons.vfs2.provider;
 
-import org.apache.commons.httpclient.URIException;
-import org.apache.commons.httpclient.util.URIUtil;
+import java.net.URISyntaxException;
+import java.nio.charset.Charset;
+import org.apache.http.client.utils.URIBuilder;
 import org.apache.commons.vfs2.FileName;
 import org.apache.commons.vfs2.FileSystemException;
 import org.apache.commons.vfs2.FileType;
@@ -68,22 +69,28 @@ public class URLFileName extends Generic
      *
      * @param charset the charset used for the path encoding
      * @return The encoded path.
-     * @throws URIException If an error occurs encoding the URI.
+     * @throws URISyntaxException If an error occurs encoding the URI.
      * @throws FileSystemException If some other error occurs.
      */
-    public String getPathQueryEncoded(final String charset) throws URIException, FileSystemException {
+    public String getPathQueryEncoded(final String charset) throws URISyntaxException, FileSystemException {
+        final String path = getPathDecoded();
         if (getQueryString() == null) {
+            if (path == "") {
+                return "";
+            }
             if (charset != null) {
-                return URIUtil.encodePath(getPathDecoded(), charset);
+                final Charset cset = Charset.forName(charset);
+                return new URIBuilder(path, cset).toString();
             }
-            return URIUtil.encodePath(getPathDecoded());
+            return new URIBuilder(path).toString();
         }
 
         final StringBuilder sb = new StringBuilder(BUFFER_SIZE);
         if (charset != null) {
-            sb.append(URIUtil.encodePath(getPathDecoded(), charset));
+             final Charset cset = Charset.forName(charset);
+             sb.append(new URIBuilder(path, cset).toString());
         } else {
-            sb.append(URIUtil.encodePath(getPathDecoded()));
+            sb.append(new URIBuilder(path).toString());
         }
         sb.append("?");
         sb.append(getQueryString());
@@ -128,9 +135,9 @@ public class URLFileName extends Generic
      * @param charset The character set.
      * @return The encoded URI
      * @throws FileSystemException if some other exception occurs.
-     * @throws URIException if an exception occurs encoding the URI.
+     * @throws URISyntaxException if an exception occurs encoding the URI.
      */
-    public String getURIEncoded(final String charset) throws FileSystemException, URIException {
+    public String getURIEncoded(final String charset) throws FileSystemException, URISyntaxException {
         final StringBuilder sb = new StringBuilder(BUFFER_SIZE);
         appendRootUri(sb, true);
         sb.append(getPathQueryEncoded(charset));
--- commons-vfs-2.9.0/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/url/UrlFileObject.java.orig	2020-01-22 08:10:15.000000000 -0700
+++ commons-vfs-2.9.0/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/url/UrlFileObject.java	2023-06-11 21:36:11.292184559 -0600
@@ -20,10 +20,10 @@ import java.io.FileNotFoundException;
 import java.io.InputStream;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLConnection;
 
-import org.apache.commons.httpclient.URIException;
 import org.apache.commons.vfs2.FileName;
 import org.apache.commons.vfs2.FileSystemException;
 import org.apache.commons.vfs2.FileType;
@@ -59,7 +59,7 @@ public class UrlFileObject extends Abstr
         }
     }
 
-    protected URL createURL(final FileName name) throws MalformedURLException, FileSystemException, URIException {
+    protected URL createURL(final FileName name) throws MalformedURLException, FileSystemException, URISyntaxException {
         if (name instanceof URLFileName) {
             final URLFileName urlName = (URLFileName) getName();