DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=27514>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=27514

Environment variables mapped through the JkEnvVar (mod_jk 1.2) are present in the 
request.getAttribute(xxx) but not in request.getAttributeNames().

           Summary: Environment variables mapped through the JkEnvVar
                    (mod_jk 1.2) are present in the
                    request.getAttribute(xxx) but not in
                    request.getAttributeNames().
           Product: Tomcat 5
           Version: 5.0.19
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Connector:Coyote
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Environment variables mapped through the JkEnvVar (mod_jk 1.2) are present in 
the request.getAttribute(xxx) but not in request.getAttributeNames(). 
 
As it turns out in 
jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/CoyoteRequest.java
 
getAttribute method is properly implemented but in the getAttributeNames the 
attributes comming from the coyoteRequest are not taken into consideration 
(the same might happen in Tomcat 4 too, didn't tested) 
 
I made a patch to correct the behavior, however not being very familiar with 
the tomcat sources the patch corrects the above described behavior but might 
not be in line with your way of doing things so feel free to adjust on it. 
 
Best regards, 
        Remus 
 
--- CoyoteRequest.java  2004-02-14 12:26:50.000000000 +0200 
+++ CoyoteRequest.java  2004-03-08 14:17:13.661831128 +0200 
@@ -163,6 +163,7 @@ 
      */ 
     public void setCoyoteRequest(Request coyoteRequest) { 
         this.coyoteRequest = coyoteRequest; 
+        if(coyoteRequest.getAttributes().size() == 0) copyOriginalAttributes 
= false;                 
         inputBuffer.setRequest(coyoteRequest); 
     } 
  
@@ -403,6 +404,14 @@ 
      */  
     protected Log log=null; 
      
+ 
+    /** 
+    * We can have attributes comming from JK (JkEnvVar) so before serving 
them 
+    * trough getAttributeNames we have to be sure that the local attributes  
+    * contains the ones from the coyoteRequest. 
+    */ 
+    protected boolean copyOriginalAttributes = true; 
+ 
     // --------------------------------------------------------- Public 
Methods 
  
     /** 
@@ -436,6 +445,7 @@ 
         localName = null; 
  
         attributes.clear(); 
+        copyOriginalAttributes = true; 
         notes.clear(); 
         cookies = null; 
  
@@ -990,6 +1000,7 @@ 
         if (isSecure()) { 
             getAttribute(Globals.CERTIFICATES_ATTR); 
         } 
+        if( copyOriginalAttributes) 
attributes.putAll(coyoteRequest.getAttributes()); 
         return new Enumerator(attributes.keySet(), true); 
     }

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

Reply via email to