remm 2003/08/31 14:08:56 Modified: catalina/src/share/org/apache/catalina/core ApplicationHttpRequest.java catalina/src/share/org/apache/coyote/tomcat5 CoyoteRequest.java Log: - Include the patInfo when a relative path is used to get a request dispatcher. - Submitted by Mark Thomas. Revision Changes Path 1.12 +17 -9 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java Index: ApplicationHttpRequest.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- ApplicationHttpRequest.java 5 Aug 2003 13:22:03 -0000 1.11 +++ ApplicationHttpRequest.java 31 Aug 2003 21:08:55 -0000 1.12 @@ -70,7 +70,6 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; -import java.util.Set; import java.util.Map; import javax.servlet.RequestDispatcher; @@ -80,7 +79,6 @@ import org.apache.catalina.Context; import org.apache.catalina.Globals; -import org.apache.catalina.HttpRequest; import org.apache.catalina.Session; import org.apache.catalina.util.Enumerator; import org.apache.catalina.util.RequestUtil; @@ -343,13 +341,23 @@ 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)); 1.15 +17 -14 jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/CoyoteRequest.java Index: CoyoteRequest.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/CoyoteRequest.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- CoyoteRequest.java 29 Aug 2003 17:18:14 -0000 1.14 +++ CoyoteRequest.java 31 Aug 2003 21:08:56 -0000 1.15 @@ -66,17 +66,14 @@ import java.io.InputStream; -import java.io.InputStreamReader; import java.io.IOException; import java.io.BufferedReader; import java.io.UnsupportedEncodingException; import java.net.InetAddress; import java.net.Socket; import java.security.Principal; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; @@ -89,11 +86,8 @@ import javax.servlet.FilterChain; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; -import javax.servlet.ServletException; import javax.servlet.ServletInputStream; import javax.servlet.ServletRequest; -import javax.servlet.ServletRequestEvent; -import javax.servlet.ServletRequestListener; import javax.servlet.ServletRequestAttributeEvent; import javax.servlet.ServletRequestAttributeListener; import javax.servlet.http.Cookie; @@ -106,7 +100,6 @@ import org.apache.tomcat.util.http.FastHttpDateFormat; import org.apache.tomcat.util.http.Parameters; import org.apache.tomcat.util.http.mapper.MappingData; -import org.apache.tomcat.util.net.SSLSupport; import org.apache.coyote.ActionCode; import org.apache.coyote.Request; @@ -1307,13 +1300,23 @@ 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]