remm        2003/07/20 07:52:17

  Modified:    catalina/src/share/org/apache/catalina/core
                        StandardContext.java
  Log:
  - Correctly update the mapper. The previous code was not compatible with
    the invoker servlet and its dynamically added wrappers.
  
  Revision  Changes    Path
  1.71      +7 -22     
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java
  
  Index: StandardContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
  retrieving revision 1.70
  retrieving revision 1.71
  diff -u -r1.70 -r1.71
  --- StandardContext.java      14 Jul 2003 10:54:11 -0000      1.70
  +++ StandardContext.java      20 Jul 2003 14:52:17 -0000      1.71
  @@ -1938,6 +1938,10 @@
           }
           Wrapper wrapper = (Wrapper) findChild(name);
           wrapper.addMapping(pattern);
  +
  +        // Update context mapper
  +        mapper.addWrapper(pattern, wrapper);
  +
           fireContainerEvent("addServletMapping", pattern);
   
       }
  @@ -3373,6 +3377,7 @@
           if( wrapper != null ) {
               wrapper.removeMapping(pattern);
           }
  +        mapper.removeWrapper(pattern);
           fireContainerEvent("removeServletMapping", pattern);
   
       }
  @@ -4039,16 +4044,6 @@
                   // Notify our interested LifecycleListeners
                   lifecycle.fireLifecycleEvent(START_EVENT, null);
   
  -                children = findChildren();
  -                for (int i = 0; i < children.length; i++) {
  -                    // Updating associated mapper
  -                    Wrapper wrapper = (Wrapper) children[i];
  -                    String[] mappings = wrapper.findMappings();
  -                    for (int j = 0; j < mappings.length; j++) {
  -                        mapper.addWrapper(mappings[j], wrapper);
  -                    }
  -                }
  -
                   if ((manager != null) && (manager instanceof Lifecycle)) {
                       ((Lifecycle) manager).start();
                   }
  @@ -4235,16 +4230,6 @@
               ((Lifecycle) manager).stop();
           }
   
  -        // Updating associated mapper
  -        Container children[] = findChildren();
  -        for (int i = 0; i < children.length; i++) {
  -            Wrapper wrapper = (Wrapper) children[i];
  -            String[] mappings = wrapper.findMappings();
  -            for (int j = 0; j < mappings.length; j++) {
  -                mapper.removeWrapper(mappings[j]);
  -            }
  -        }
  -
           // Normal container shutdown processing
           if (log.isDebugEnabled())
               log.debug("Processing standard container shutdown");
  @@ -4260,7 +4245,7 @@
               }
   
               // Stop our child containers, if any
  -            children = findChildren();
  +            Container[] children = findChildren();
               for (int i = 0; i < children.length; i++) {
                   if (children[i] instanceof Lifecycle)
                       ((Lifecycle) children[i]).stop();
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to