This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
     new 3d958a042b More URL -> URI refactoring
3d958a042b is described below

commit 3d958a042b85c2c48366723ae5a874ba3fe1c9d3
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Nov 16 15:28:40 2022 +0000

    More URL -> URI refactoring
---
 java/org/apache/catalina/startup/CatalinaProperties.java   |  2 +-
 java/org/apache/catalina/startup/ClassLoaderFactory.java   |  4 ++--
 java/org/apache/catalina/webresources/JarResourceRoot.java |  4 ++--
 java/org/apache/jasper/compiler/Compiler.java              |  5 +++--
 java/org/apache/jasper/compiler/TagLibraryInfoImpl.java    |  2 +-
 java/org/apache/jasper/servlet/JspCServletContext.java     | 14 ++++++++++----
 java/org/apache/jasper/servlet/TldPreScanned.java          |  3 ++-
 7 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/java/org/apache/catalina/startup/CatalinaProperties.java 
b/java/org/apache/catalina/startup/CatalinaProperties.java
index 7ed368a5da..82ce77cc21 100644
--- a/java/org/apache/catalina/startup/CatalinaProperties.java
+++ b/java/org/apache/catalina/startup/CatalinaProperties.java
@@ -63,7 +63,7 @@ public class CatalinaProperties {
         try {
             String configUrl = System.getProperty("catalina.config");
             if (configUrl != null) {
-                is = (new URI(configUrl)).toURL().openStream();
+                is = new URI(configUrl).toURL().openStream();
             }
         } catch (Throwable t) {
             handleThrowable(t);
diff --git a/java/org/apache/catalina/startup/ClassLoaderFactory.java 
b/java/org/apache/catalina/startup/ClassLoaderFactory.java
index 08387e47d0..684b707e52 100644
--- a/java/org/apache/catalina/startup/ClassLoaderFactory.java
+++ b/java/org/apache/catalina/startup/ClassLoaderFactory.java
@@ -302,7 +302,7 @@ public final class ClassLoaderFactory {
         // the URL will be used as is. It is therefore necessary to ensure that
         // the sequence "!/" is not present in a class loader URL.
         String result = urlString.replaceAll("!/", "%21/");
-        return (new URI(result)).toURL();
+        return new URI(result).toURL();
     }
 
 
@@ -310,7 +310,7 @@ public final class ClassLoaderFactory {
         // Could be a directory or a file
         String fileUrlString = file.toURI().toString();
         fileUrlString = fileUrlString.replaceAll("!/", "%21/");
-        return (new URI(fileUrlString)).toURL();
+        return new URI(fileUrlString).toURL();
     }
 
 
diff --git a/java/org/apache/catalina/webresources/JarResourceRoot.java 
b/java/org/apache/catalina/webresources/JarResourceRoot.java
index 48d1d366e0..fc11a47b05 100644
--- a/java/org/apache/catalina/webresources/JarResourceRoot.java
+++ b/java/org/apache/catalina/webresources/JarResourceRoot.java
@@ -126,7 +126,7 @@ public class JarResourceRoot extends AbstractResource {
     public URL getURL() {
         String url = baseUrl + "!/";
         try {
-            return (new URI(url)).toURL();
+            return new URI(url).toURL();
         } catch (MalformedURLException | URISyntaxException e) {
             if (log.isDebugEnabled()) {
                 log.debug(sm.getString("fileResource.getUrlFail", url), e);
@@ -138,7 +138,7 @@ public class JarResourceRoot extends AbstractResource {
     @Override
     public URL getCodeBase() {
         try {
-            return (new URI(baseUrl)).toURL();
+            return new URI(baseUrl).toURL();
         } catch (MalformedURLException | URISyntaxException e) {
             if (getLog().isDebugEnabled()) {
                 getLog().debug(sm.getString("fileResource.getUrlFail", 
baseUrl), e);
diff --git a/java/org/apache/jasper/compiler/Compiler.java 
b/java/org/apache/jasper/compiler/Compiler.java
index 3be9e58c89..935c19ca1b 100644
--- a/java/org/apache/jasper/compiler/Compiler.java
+++ b/java/org/apache/jasper/compiler/Compiler.java
@@ -23,6 +23,7 @@ import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.io.UnsupportedEncodingException;
 import java.net.JarURLConnection;
+import java.net.URI;
 import java.net.URL;
 import java.net.URLConnection;
 import java.util.Map;
@@ -506,12 +507,12 @@ public abstract class Compiler {
                     // Assume we constructed this correctly
                     int entryStart = key.lastIndexOf("!/");
                     String entry = key.substring(entryStart + 2);
-                    try (Jar jar = JarFactory.newInstance(new 
URL(key.substring(4, entryStart)))) {
+                    try (Jar jar = JarFactory.newInstance(new 
URI(key.substring(4, entryStart)).toURL())) {
                         includeLastModified = jar.getLastModified(entry);
                     }
                 } else {
                     if (key.startsWith("jar:") || key.startsWith("file:")) {
-                        includeUrl = new URL(key);
+                        includeUrl = new URI(key).toURL();
                     } else {
                         includeUrl = ctxt.getResource(include.getKey());
                     }
diff --git a/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java 
b/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
index 96417c00f4..8550c93b38 100644
--- a/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
+++ b/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
@@ -255,7 +255,7 @@ class TagLibraryInfoImpl extends TagLibraryInfo implements 
TagConstants {
             try {
                 // Can't use RequestUtils.normalize since that package is not
                 // available to Jasper.
-                uri = (new URI(uri)).normalize().toString();
+                uri = new URI(uri).normalize().toString();
                 if (uri.startsWith("../")) {
                     // Trying to go outside context root
                     err.jspError("jsp.error.taglibDirective.uriInvalid", uri);
diff --git a/java/org/apache/jasper/servlet/JspCServletContext.java 
b/java/org/apache/jasper/servlet/JspCServletContext.java
index ae38792ad9..15ce008977 100644
--- a/java/org/apache/jasper/servlet/JspCServletContext.java
+++ b/java/org/apache/jasper/servlet/JspCServletContext.java
@@ -21,6 +21,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintWriter;
 import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -388,8 +390,12 @@ public class JspCServletContext implements ServletContext {
         // Strip leading '/'
         path = path.substring(1);
 
-        URL url = new URL(myResourceBaseURL, path);
-        try (InputStream is = url.openStream()) {
+        URL url = null;
+        try {
+            URI uri = new URI(myResourceBaseURL.toExternalForm() + path);
+            url = uri.toURL();
+            try (InputStream is = url.openStream()) {
+            }
         } catch (Throwable t) {
             ExceptionUtils.handleThrowable(t);
             url = null;
@@ -402,9 +408,9 @@ public class JspCServletContext implements ServletContext {
             for (URL jarUrl : resourceJARs) {
                 try (Jar jar = JarFactory.newInstance(jarUrl)) {
                     if (jar.exists(jarPath)) {
-                        return new URL(jar.getURL(jarPath));
+                        return new URI(jar.getURL(jarPath)).toURL();
                     }
-                } catch (IOException ioe) {
+                } catch (IOException | URISyntaxException ioe) {
                     // Ignore
                 }
             }
diff --git a/java/org/apache/jasper/servlet/TldPreScanned.java 
b/java/org/apache/jasper/servlet/TldPreScanned.java
index a1f96bd6b8..07f7c1dff1 100644
--- a/java/org/apache/jasper/servlet/TldPreScanned.java
+++ b/java/org/apache/jasper/servlet/TldPreScanned.java
@@ -16,6 +16,7 @@
  */
 package org.apache.jasper.servlet;
 
+import java.net.URI;
 import java.net.URL;
 import java.util.Collection;
 
@@ -43,7 +44,7 @@ public class TldPreScanned extends TldScanner {
                 String fileUrl = str.substring(a + 4, b);
                 String path = str.substring(b + 2);
                 try {
-                    parseTld(new TldResourcePath(new URL(fileUrl), null, 
path));
+                    parseTld(new TldResourcePath(new URI(fileUrl).toURL(), 
null, path));
                 } catch (Exception e) {
                     throw new IllegalStateException(e);
                 }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to