remm        2003/01/30 10:22:58

  Modified:    coyote/src/java/org/apache/coyote/tomcat5 CoyoteRequest.java
  Log:
  - Add optimized processing for request dispatcher state (which are done using
    Catalina proprietary request attributes).
  - No notifications will be sent for these attributes changes to listeners (if that's
    contrary to the spec, let me know; it looks ok as these are proprietary
    internal attributes).
  
  Revision  Changes    Path
  1.20      +34 -4     
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/CoyoteRequest.java
  
  Index: CoyoteRequest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/CoyoteRequest.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- CoyoteRequest.java        30 Jan 2003 14:22:15 -0000      1.19
  +++ CoyoteRequest.java        30 Jan 2003 18:22:58 -0000      1.20
  @@ -242,6 +242,12 @@
   
   
       /**
  +     * The current dispatcher type.
  +     */
  +    protected Object dispatcherType = null;
  +
  +
  +    /**
        * The associated input buffer.
        */
       protected InputBuffer inputBuffer = new InputBuffer();
  @@ -316,6 +322,12 @@
   
   
       /**
  +     * The current request dispatcher path.
  +     */
  +    protected Object requestDispatcherPath = null;
  +
  +
  +    /**
        * Was the requested session ID received in a cookie?
        */
       protected boolean requestedSessionCookie = false;
  @@ -375,6 +387,9 @@
           context = null;
           wrapper = null;
   
  +        dispatcherType = null;
  +        requestDispatcherPath = null;
  +
           authType = null;
           inputBuffer.recycle();
           usingInputStream = false;
  @@ -870,6 +885,13 @@
        * @param name Name of the request attribute to return
        */
       public Object getAttribute(String name) {
  +
  +        if (name.equals(Globals.DISPATCHER_TYPE_ATTR)) {
  +            return dispatcherType;
  +        } else if (name.equals(Globals.DISPATCHER_REQUEST_PATH_ATTR)) {
  +            return requestDispatcherPath.toString();
  +        }
  +
           Object attr=attributes.get(name);
   
           if(attr!=null)
  @@ -1281,6 +1303,14 @@
           // Null value is the same as removeAttribute()
           if (value == null) {
               removeAttribute(name);
  +            return;
  +        }
  +
  +        if (name.equals(Globals.DISPATCHER_TYPE_ATTR)) {
  +            dispatcherType = value;
  +            return;
  +        } else if (name.equals(Globals.DISPATCHER_REQUEST_PATH_ATTR)) {
  +            requestDispatcherPath = value;
               return;
           }
   
  
  
  

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

Reply via email to