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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]