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