You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2003/12/11 23:56:14 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector HttpRequestBase.java

markt       2003/12/11 14:56:14

  Modified:    catalina/src/share/org/apache/catalina/connector
                        HttpRequestBase.java
  Log:
  - Port of fix for bug 3098. Include the pathInfo when a relative path is used to get a request dispatcher.
  
  Revision  Changes    Path
  1.40      +18 -9     jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpRequestBase.java
  
  Index: HttpRequestBase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpRequestBase.java,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- HttpRequestBase.java	22 Apr 2002 00:00:50 -0000	1.39
  +++ HttpRequestBase.java	11 Dec 2003 22:56:14 -0000	1.40
  @@ -76,7 +76,6 @@
   import java.util.Date;
   import java.util.Enumeration;
   import java.util.HashMap;
  -import java.util.Hashtable;
   import java.util.Locale;
   import java.util.Map;
   import javax.servlet.RequestDispatcher;
  @@ -94,7 +93,6 @@
   import org.apache.catalina.util.Enumerator;
   import org.apache.catalina.util.ParameterMap;
   import org.apache.catalina.util.RequestUtil;
  -import org.apache.catalina.util.StringParser;
   
   
   /**
  @@ -793,13 +791,24 @@
           if (servletPath == null)
               servletPath = getServletPath();
   
  -        int pos = servletPath.lastIndexOf('/');
  +        // Add the path info, if there is any
  +        String pathInfo = getPathInfo();
  +        String requestPath = null;
  +
  +        if (pathInfo == null) {
  +            requestPath = servletPath;
  +        } else {
  +            requestPath = servletPath + pathInfo;
  +        }
  +
  +        int pos = requestPath.lastIndexOf('/');
  +
           String relative = null;
           if (pos >= 0) {
               relative = RequestUtil.normalize
  -                (servletPath.substring(0, pos + 1) + path);
  +                (requestPath.substring(0, pos + 1) + path);
           } else {
  -            relative = RequestUtil.normalize(servletPath + path);
  +            relative = RequestUtil.normalize(requestPath + path);
           }
   
           return (context.getServletContext().getRequestDispatcher(relative));
  
  
  

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