Author: markt
Date: Wed Jul 30 02:35:27 2008
New Revision: 680950

URL: http://svn.apache.org/viewvc?rev=680950&view=rev
Log:
Port r673820 to 4.1.x
Extract the query string before we try to normalise the URI

Modified:
    
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/core/ApplicationContext.java

Modified: 
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/core/ApplicationContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/core/ApplicationContext.java?rev=680950&r1=680949&r2=680950&view=diff
==============================================================================
--- 
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/core/ApplicationContext.java
 (original)
+++ 
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/core/ApplicationContext.java
 Wed Jul 30 02:35:27 2008
@@ -581,6 +581,15 @@
         if (!path.startsWith("/"))
             throw new IllegalArgumentException
               (sm.getString("applicationContext.requestDispatcher.iae", path));
+
+        // Get query string
+        String queryString = null;
+        int question = path.indexOf('?');
+        if (question >= 0) {
+            queryString = path.substring(question + 1);
+            path = path.substring(0, question);
+        }
+
         path = normalize(path);
         if (path == null)
             return (null);
@@ -589,24 +598,17 @@
         String contextPath = context.getPath();
         if (contextPath == null)
             contextPath = "";
-        String relativeURI = path;
-        String queryString = null;
-        int question = path.indexOf('?');
-        if (question >= 0) {
-            relativeURI = path.substring(0, question);
-            queryString = path.substring(question + 1);
-        }
         if( System.getSecurityManager() != null ) {
             PrivilegedGetRequestDispatcher dp =
                 new PrivilegedGetRequestDispatcher(contextPath,
-                        relativeURI,queryString);
+                        path,queryString);
             return (RequestDispatcher)AccessController.doPrivileged(dp);
         }
 
         // The remaining code is duplicated in PrivilegedGetRequestDispatcher,
         // we need to make sure they stay in sync
         HttpRequest request = new MappingRequest
-            (context.getPath(), contextPath + relativeURI, queryString);
+            (context.getPath(), contextPath + path, queryString);
         /*
         request.setContext(context);
         request.setContextPath(context.getPath());



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to