tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lar...@apache.org
Subject cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/core ContextManager.java
Date Wed, 11 Jul 2001 05:24:15 GMT
larryi      01/07/10 22:24:15

  Modified:    src/share/org/apache/tomcat/core Tag: tomcat_32
                        ContextManager.java
  Log:
  Prior patch to fix recursive status handling went too far and broke
  authorization which makes a recursive call to the status handling.
  Modify to report a recursive loop only if recursion occurs with the same
  status code.
  
  Suggested by: Ignacio J. Ortega
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.100.2.25 +5 -3      jakarta-tomcat/src/share/org/apache/tomcat/core/ContextManager.java
  
  Index: ContextManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/ContextManager.java,v
  retrieving revision 1.100.2.24
  retrieving revision 1.100.2.25
  diff -u -r1.100.2.24 -r1.100.2.25
  --- ContextManager.java	2001/07/06 18:40:05	1.100.2.24
  +++ ContextManager.java	2001/07/11 05:24:14	1.100.2.25
  @@ -1047,7 +1047,7 @@
   	if( debug>0 )
   	    ctx.log( "Handler " + errorServlet + " " + errorPath);
   
  -        if ( statusLoop( ctx, req ) ){
  +        if ( statusLoop( ctx, req, code ) ){
               log( "Error loop for " + req + " error code " + code);
               return;
           }
  @@ -1206,8 +1206,10 @@
   
       /** Handle the case of status handler generating an error
        */
  -    private boolean statusLoop( Context ctx, Request req ) {
  -        if ( req.getAttribute("javax.servlet.error.status_code") != null ) {
  +    private boolean statusLoop( Context ctx, Request req, int newCode ) {
  +        Integer lastCode = (Integer)req.getAttribute("javax.servlet.error.status_code");
  +        // If status code repeated, assume recursive loop
  +        if ( lastCode != null && lastCode.intValue() == newCode) {
               if( ctx.getDebug() > 0 )
                   ctx.log( "Error: nested error inside status servlet " +
                           req.getAttribute("javax.servlet.error.status_code"));
  
  
  

Mime
View raw message