Author: markt
Date: Thu Dec 11 21:16:00 2014
New Revision: 1644768

URL: http://svn.apache.org/r1644768
Log:
Use a single, common URLDecoder instance. This adds '~' as a safe character in 
some cases.

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
    tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
    tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
    tomcat/trunk/java/org/apache/catalina/util/URLEncoder.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1644768&r1=1644767&r2=1644768&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Thu Dec 
11 21:16:00 2014
@@ -121,28 +121,6 @@ public class CoyoteAdapter implements Ad
         StringManager.getManager(Constants.Package);
 
 
-    /**
-     * Encoder for the Location URL in HTTP redirects.
-     */
-    protected static final URLEncoder urlEncoder;
-
-
-    // ----------------------------------------------------- Static Initializer
-
-
-    /**
-     * The safe character set.
-     */
-    static {
-        urlEncoder = new URLEncoder();
-        urlEncoder.addSafeCharacter('-');
-        urlEncoder.addSafeCharacter('_');
-        urlEncoder.addSafeCharacter('.');
-        urlEncoder.addSafeCharacter('*');
-        urlEncoder.addSafeCharacter('/');
-    }
-
-
     // -------------------------------------------------------- Adapter Methods
 
     @Override
@@ -809,7 +787,7 @@ public class CoyoteAdapter implements Ad
         // Possible redirect
         MessageBytes redirectPathMB = request.getMappingData().redirectPath;
         if (!redirectPathMB.isNull()) {
-            String redirectPath = urlEncoder.encode(redirectPathMB.toString());
+            String redirectPath = 
URLEncoder.DEFAULT.encode(redirectPathMB.toString());
             String query = request.getQueryString();
             if (request.isRequestedSessionIdFromURL()) {
                 // This is not optimal, but as this is not very common, it

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1644768&r1=1644767&r2=1644768&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Thu Dec 11 
21:16:00 2014
@@ -168,32 +168,8 @@ public class StandardContext extends Con
     }
 
 
-    // ----------------------------------------------------- Class Variables
-
-
-    /**
-     * Array containing the safe characters set.
-     */
-    protected static URLEncoder urlEncoder;
-
-
-    /**
-     * GMT timezone - all HTTP dates are on GMT
-     */
-    static {
-        urlEncoder = new URLEncoder();
-        urlEncoder.addSafeCharacter('~');
-        urlEncoder.addSafeCharacter('-');
-        urlEncoder.addSafeCharacter('_');
-        urlEncoder.addSafeCharacter('.');
-        urlEncoder.addSafeCharacter('*');
-        urlEncoder.addSafeCharacter('/');
-    }
-
-
     // ----------------------------------------------------- Instance Variables
 
-
     /**
      * Allow multipart/form-data requests to be parsed even when the
      * target servlet doesn't specify @MultipartConfig or have a
@@ -1977,7 +1953,7 @@ public class StandardContext extends Con
             log.warn(sm.getString(
                     "standardContext.pathInvalid", path, this.path));
         }
-        encodedPath = urlEncoder.encode(this.path);
+        encodedPath = URLEncoder.DEFAULT.encode(this.path);
         if (getName() == null) {
             setName(this.path);
         }

Modified: tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java?rev=1644768&r1=1644767&r2=1644768&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java Thu Dec 
11 21:16:00 2014
@@ -129,11 +129,6 @@ public class DefaultServlet extends Http
      */
     protected static final StringManager sm = 
StringManager.getManager(Constants.Package);
 
-    /**
-     * Array containing the safe characters set.
-     */
-    protected static final URLEncoder urlEncoder;
-
     private static final DocumentBuilderFactory factory;
 
     private static final SecureEntityResolver secureEntityResolver;
@@ -162,13 +157,6 @@ public class DefaultServlet extends Http
     // ----------------------------------------------------- Static Initializer
 
     static {
-        urlEncoder = new URLEncoder();
-        urlEncoder.addSafeCharacter('-');
-        urlEncoder.addSafeCharacter('_');
-        urlEncoder.addSafeCharacter('.');
-        urlEncoder.addSafeCharacter('*');
-        urlEncoder.addSafeCharacter('/');
-
         if (Globals.IS_SECURITY_ENABLED) {
             factory = DocumentBuilderFactory.newInstance();
             factory.setNamespaceAware(true);
@@ -678,7 +666,7 @@ public class DefaultServlet extends Http
      * @param path Path which has to be rewritten
      */
     protected String rewriteUrl(String path) {
-        return urlEncoder.encode( path );
+        return URLEncoder.DEFAULT.encode( path );
     }
 
 

Modified: tomcat/trunk/java/org/apache/catalina/util/URLEncoder.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/URLEncoder.java?rev=1644768&r1=1644767&r2=1644768&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/util/URLEncoder.java (original)
+++ tomcat/trunk/java/org/apache/catalina/util/URLEncoder.java Thu Dec 11 
21:16:00 2014
@@ -38,6 +38,16 @@ public class URLEncoder {
     {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
      'A', 'B', 'C', 'D', 'E', 'F'};
 
+    public static final URLEncoder DEFAULT = new URLEncoder();
+    static {
+        DEFAULT.addSafeCharacter('~');
+        DEFAULT.addSafeCharacter('-');
+        DEFAULT.addSafeCharacter('_');
+        DEFAULT.addSafeCharacter('.');
+        DEFAULT.addSafeCharacter('*');
+        DEFAULT.addSafeCharacter('/');
+    }
+
     //Array containing the safe characters set.
     protected final BitSet safeCharacters = new BitSet(256);
 



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

Reply via email to