You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2004/03/06 00:52:55 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core ApplicationContext.java ApplicationDispatcher.java
remm 2004/03/05 15:52:55
Modified: catalina/src/share/org/apache/catalina/core
ApplicationContext.java ApplicationDispatcher.java
Log:
- Fix crossContext flag when dispatching back to the original context.
- Bug 27478.
Revision Changes Path
1.24 +2 -2 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationContext.java
Index: ApplicationContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationContext.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- ApplicationContext.java 27 Feb 2004 14:58:42 -0000 1.23
+++ ApplicationContext.java 5 Mar 2004 23:52:55 -0000 1.24
@@ -228,7 +228,7 @@
String mapuri = uri;
while (true) {
child = (Context) host.findChild(mapuri);
- if (context != null)
+ if (child != null)
break;
int slash = mapuri.lastIndexOf('/');
if (slash < 0)
1.31 +15 -3 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java
Index: ApplicationDispatcher.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- ApplicationDispatcher.java 27 Feb 2004 14:58:42 -0000 1.30
+++ ApplicationDispatcher.java 5 Mar 2004 23:52:55 -0000 1.31
@@ -969,8 +969,20 @@
(current instanceof HttpServletRequest)) {
// Compute a crossContext flag
HttpServletRequest hcurrent = (HttpServletRequest) current;
- boolean crossContext =
- !(context.getPath().equals(hcurrent.getContextPath()));
+ boolean crossContext = false;
+ if ((outerRequest instanceof ApplicationHttpRequest) ||
+ (outerRequest instanceof HttpRequest) ||
+ (outerRequest instanceof HttpServletRequest)) {
+ HttpServletRequest houterRequest =
+ (HttpServletRequest) outerRequest;
+ Object contextPath = houterRequest.getAttribute
+ (Globals.INCLUDE_CONTEXT_PATH_ATTR);
+ if (contextPath == null) {
+ // Forward
+ contextPath = houterRequest.getContextPath();
+ }
+ crossContext = !(context.getPath().equals(contextPath));
+ }
wrapper = new ApplicationHttpRequest
(hcurrent, context, crossContext);
} else {
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org