You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/07/23 18:03:26 UTC

svn commit: r967146 [2/3] - /tomcat/trunk/java/javax/servlet/http/

Modified: tomcat/trunk/java/javax/servlet/http/HttpServletResponse.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/HttpServletResponse.java?rev=967146&r1=967145&r2=967146&view=diff
==============================================================================
--- tomcat/trunk/java/javax/servlet/http/HttpServletResponse.java (original)
+++ tomcat/trunk/java/javax/servlet/http/HttpServletResponse.java Fri Jul 23 16:03:25 2010
@@ -1,19 +1,19 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package javax.servlet.http;
 
 import java.io.IOException;
@@ -22,345 +22,310 @@ import java.util.Collection;
 import javax.servlet.ServletResponse;
 
 /**
- *
  * Extends the {@link ServletResponse} interface to provide HTTP-specific
- * functionality in sending a response.  For example, it has methods
- * to access HTTP headers and cookies.
- *
- * <p>The servlet container creates an <code>HttpServletResponse</code> object
- * and passes it as an argument to the servlet's service methods
- * (<code>doGet</code>, <code>doPost</code>, etc).
- *
+ * functionality in sending a response. For example, it has methods to access
+ * HTTP headers and cookies.
+ * <p>
+ * The servlet container creates an <code>HttpServletResponse</code> object and
+ * passes it as an argument to the servlet's service methods (<code>doGet</code>, <code>doPost</code>, etc).
  * 
- * @author	Various
- * @version	$Version$
- *
- * @see		javax.servlet.ServletResponse
- *
+ * @author Various
+ * @version $Version$
+ * @see javax.servlet.ServletResponse
  */
-
-
-
 public interface HttpServletResponse extends ServletResponse {
 
     /**
-     * Adds the specified cookie to the response.  This method can be called
+     * Adds the specified cookie to the response. This method can be called
      * multiple times to set more than one cookie.
-     *
-     * @param cookie the Cookie to return to the client
-     *
+     * 
+     * @param cookie
+     *            the Cookie to return to the client
      */
-
     public void addCookie(Cookie cookie);
 
     /**
-     * Returns a boolean indicating whether the named response header 
-     * has already been set.
+     * Returns a boolean indicating whether the named response header has
+     * already been set.
      * 
-     * @param	name	the header name
-     * @return		<code>true</code> if the named response header 
-     *			has already been set; 
-     * 			<code>false</code> otherwise
+     * @param name
+     *            the header name
+     * @return <code>true</code> if the named response header has already been
+     *         set; <code>false</code> otherwise
      */
-
     public boolean containsHeader(String name);
 
     /**
-     * Encodes the specified URL by including the session ID in it,
-     * or, if encoding is not needed, returns the URL unchanged.
-     * The implementation of this method includes the logic to
-     * determine whether the session ID needs to be encoded in the URL.
-     * For example, if the browser supports cookies, or session
-     * tracking is turned off, URL encoding is unnecessary.
-     * 
-     * <p>For robust session tracking, all URLs emitted by a servlet 
-     * should be run through this
-     * method.  Otherwise, URL rewriting cannot be used with browsers
-     * which do not support cookies.
-     *
-     * @param	url	the url to be encoded.
-     * @return		the encoded URL if encoding is needed;
-     * 			the unchanged URL otherwise.
+     * Encodes the specified URL by including the session ID in it, or, if
+     * encoding is not needed, returns the URL unchanged. The implementation of
+     * this method includes the logic to determine whether the session ID needs
+     * to be encoded in the URL. For example, if the browser supports cookies,
+     * or session tracking is turned off, URL encoding is unnecessary.
+     * <p>
+     * For robust session tracking, all URLs emitted by a servlet should be run
+     * through this method. Otherwise, URL rewriting cannot be used with
+     * browsers which do not support cookies.
+     * 
+     * @param url
+     *            the url to be encoded.
+     * @return the encoded URL if encoding is needed; the unchanged URL
+     *         otherwise.
      */
-
     public String encodeURL(String url);
 
     /**
-     * Encodes the specified URL for use in the
-     * <code>sendRedirect</code> method or, if encoding is not needed,
-     * returns the URL unchanged.  The implementation of this method
-     * includes the logic to determine whether the session ID
-     * needs to be encoded in the URL.  Because the rules for making
-     * this determination can differ from those used to decide whether to
-     * encode a normal link, this method is separated from the
-     * <code>encodeURL</code> method.
-     * 
-     * <p>All URLs sent to the <code>HttpServletResponse.sendRedirect</code>
-     * method should be run through this method.  Otherwise, URL
-     * rewriting cannot be used with browsers which do not support
-     * cookies.
-     *
-     * @param	url	the url to be encoded.
-     * @return		the encoded URL if encoding is needed;
-     * 			the unchanged URL otherwise.
-     *
+     * Encodes the specified URL for use in the <code>sendRedirect</code> method
+     * or, if encoding is not needed, returns the URL unchanged. The
+     * implementation of this method includes the logic to determine whether the
+     * session ID needs to be encoded in the URL. Because the rules for making
+     * this determination can differ from those used to decide whether to encode
+     * a normal link, this method is separated from the <code>encodeURL</code>
+     * method.
+     * <p>
+     * All URLs sent to the <code>HttpServletResponse.sendRedirect</code> method
+     * should be run through this method. Otherwise, URL rewriting cannot be
+     * used with browsers which do not support cookies.
+     * 
+     * @param url
+     *            the url to be encoded.
+     * @return the encoded URL if encoding is needed; the unchanged URL
+     *         otherwise.
      * @see #sendRedirect
      * @see #encodeUrl
      */
-
     public String encodeRedirectURL(String url);
 
     /**
-     * @param	url	the url to be encoded.
-     * @return		the encoded URL if encoding is needed; 
-     * 			the unchanged URL otherwise.
-     * 
-     * @deprecated  As of version 2.1, use encodeURL(String url) instead
+     * @param url
+     *            the url to be encoded.
+     * @return the encoded URL if encoding is needed; the unchanged URL
+     *         otherwise.
+     * @deprecated As of version 2.1, use encodeURL(String url) instead
      */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String encodeUrl(String url);
-    
+
     /**
-     * @param	url	the url to be encoded.
-     * @return		the encoded URL if encoding is needed; 
-     * 			the unchanged URL otherwise.
-     * 
-     * @deprecated  As of version 2.1, use 
-     *          encodeRedirectURL(String url) instead
+     * @param url
+     *            the url to be encoded.
+     * @return the encoded URL if encoding is needed; the unchanged URL
+     *         otherwise.
+     * @deprecated As of version 2.1, use encodeRedirectURL(String url) instead
      */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String encodeRedirectUrl(String url);
 
     /**
-     * Sends an error response to the client using the specified
-     * status.  The server defaults to creating the
-     * response to look like an HTML-formatted server error page
-     * containing the specified message, setting the content type
-     * to "text/html", leaving cookies and other headers unmodified.
-     *
-     * If an error-page declaration has been made for the web application
-     * corresponding to the status code passed in, it will be served back in 
-     * preference to the suggested msg parameter. 
-     *
-     * <p>If the response has already been committed, this method throws 
-     * an IllegalStateException.
-     * After using this method, the response should be considered
-     * to be committed and should not be written to.
-     *
-     * @param	sc	the error status code
-     * @param	msg	the descriptive message
-     * @exception	IOException	If an input or output exception occurs
-     * @exception	IllegalStateException	If the response was committed
+     * Sends an error response to the client using the specified status. The
+     * server defaults to creating the response to look like an HTML-formatted
+     * server error page containing the specified message, setting the content
+     * type to "text/html", leaving cookies and other headers unmodified. If an
+     * error-page declaration has been made for the web application
+     * corresponding to the status code passed in, it will be served back in
+     * preference to the suggested msg parameter.
+     * <p>
+     * If the response has already been committed, this method throws an
+     * IllegalStateException. After using this method, the response should be
+     * considered to be committed and should not be written to.
+     * 
+     * @param sc
+     *            the error status code
+     * @param msg
+     *            the descriptive message
+     * @exception IOException
+     *                If an input or output exception occurs
+     * @exception IllegalStateException
+     *                If the response was committed
      */
-   
     public void sendError(int sc, String msg) throws IOException;
 
     /**
-     * Sends an error response to the client using the specified status
-     * code and clearing the buffer. 
-     * <p>If the response has already been committed, this method throws 
-     * an IllegalStateException.
-     * After using this method, the response should be considered
-     * to be committed and should not be written to.
-     *
-     * @param	sc	the error status code
-     * @exception	IOException	If an input or output exception occurs
-     * @exception	IllegalStateException	If the response was committed
-     *						before this method call
+     * Sends an error response to the client using the specified status code and
+     * clearing the buffer.
+     * <p>
+     * If the response has already been committed, this method throws an
+     * IllegalStateException. After using this method, the response should be
+     * considered to be committed and should not be written to.
+     * 
+     * @param sc
+     *            the error status code
+     * @exception IOException
+     *                If an input or output exception occurs
+     * @exception IllegalStateException
+     *                If the response was committed before this method call
      */
-
     public void sendError(int sc) throws IOException;
 
     /**
-     * Sends a temporary redirect response to the client using the
-     * specified redirect location URL.  This method can accept relative URLs;
-     * the servlet container must convert the relative URL to an absolute URL
-     * before sending the response to the client. If the location is relative 
-     * without a leading '/' the container interprets it as relative to
-     * the current request URI. If the location is relative with a leading
-     * '/' the container interprets it as relative to the servlet container root.
-     *
-     * <p>If the response has already been committed, this method throws 
-     * an IllegalStateException.
-     * After using this method, the response should be considered
-     * to be committed and should not be written to.
-     *
-     * @param		location	the redirect location URL
-     * @exception	IOException	If an input or output exception occurs
-     * @exception	IllegalStateException	If the response was committed or
- if a partial URL is given and cannot be converted into a valid URL
+     * Sends a temporary redirect response to the client using the specified
+     * redirect location URL. This method can accept relative URLs; the servlet
+     * container must convert the relative URL to an absolute URL before sending
+     * the response to the client. If the location is relative without a leading
+     * '/' the container interprets it as relative to the current request URI.
+     * If the location is relative with a leading '/' the container interprets
+     * it as relative to the servlet container root.
+     * <p>
+     * If the response has already been committed, this method throws an
+     * IllegalStateException. After using this method, the response should be
+     * considered to be committed and should not be written to.
+     * 
+     * @param location
+     *            the redirect location URL
+     * @exception IOException
+     *                If an input or output exception occurs
+     * @exception IllegalStateException
+     *                If the response was committed or if a partial URL is given
+     *                and cannot be converted into a valid URL
      */
-
     public void sendRedirect(String location) throws IOException;
-    
+
     /**
+     * Sets a response header with the given name and date-value. The date is
+     * specified in terms of milliseconds since the epoch. If the header had
+     * already been set, the new value overwrites the previous one. The
+     * <code>containsHeader</code> method can be used to test for the presence
+     * of a header before setting its value.
      * 
-     * Sets a response header with the given name and
-     * date-value.  The date is specified in terms of
-     * milliseconds since the epoch.  If the header had already
-     * been set, the new value overwrites the previous one.  The
-     * <code>containsHeader</code> method can be used to test for the
-     * presence of a header before setting its value.
-     * 
-     * @param	name	the name of the header to set
-     * @param	date	the assigned date value
-     * 
+     * @param name
+     *            the name of the header to set
+     * @param date
+     *            the assigned date value
      * @see #containsHeader
      * @see #addDateHeader
      */
-
     public void setDateHeader(String name, long date);
-    
+
     /**
+     * Adds a response header with the given name and date-value. The date is
+     * specified in terms of milliseconds since the epoch. This method allows
+     * response headers to have multiple values.
      * 
-     * Adds a response header with the given name and
-     * date-value.  The date is specified in terms of
-     * milliseconds since the epoch.  This method allows response headers 
-     * to have multiple values.
-     * 
-     * @param	name	the name of the header to set
-     * @param	date	the additional date value
-     * 
+     * @param name
+     *            the name of the header to set
+     * @param date
+     *            the additional date value
      * @see #setDateHeader
      */
-
     public void addDateHeader(String name, long date);
-    
+
     /**
-     *
-     * Sets a response header with the given name and value.
-     * If the header had already been set, the new value overwrites the
-     * previous one.  The <code>containsHeader</code> method can be
-     * used to test for the presence of a header before setting its
-     * value.
-     * 
-     * @param	name	the name of the header
-     * @param	value	the header value  If it contains octet string,
-     *		it should be encoded according to RFC 2047
-     *		(http://www.ietf.org/rfc/rfc2047.txt)
-     *
+     * Sets a response header with the given name and value. If the header had
+     * already been set, the new value overwrites the previous one. The
+     * <code>containsHeader</code> method can be used to test for the presence
+     * of a header before setting its value.
+     * 
+     * @param name
+     *            the name of the header
+     * @param value
+     *            the header value If it contains octet string, it should be
+     *            encoded according to RFC 2047
+     *            (http://www.ietf.org/rfc/rfc2047.txt)
      * @see #containsHeader
      * @see #addHeader
      */
-
     public void setHeader(String name, String value);
-    
+
     /**
-     * Adds a response header with the given name and value.
-     * This method allows response headers to have multiple values.
+     * Adds a response header with the given name and value. This method allows
+     * response headers to have multiple values.
      * 
-     * @param	name	the name of the header
-     * @param	value	the additional header value   If it contains
-     *		octet string, it should be encoded
-     *		according to RFC 2047
-     *		(http://www.ietf.org/rfc/rfc2047.txt)
-     *
+     * @param name
+     *            the name of the header
+     * @param value
+     *            the additional header value If it contains octet string, it
+     *            should be encoded according to RFC 2047
+     *            (http://www.ietf.org/rfc/rfc2047.txt)
      * @see #setHeader
      */
-
     public void addHeader(String name, String value);
 
     /**
-     * Sets a response header with the given name and
-     * integer value.  If the header had already been set, the new value
-     * overwrites the previous one.  The <code>containsHeader</code>
-     * method can be used to test for the presence of a header before
-     * setting its value.
-     *
-     * @param	name	the name of the header
-     * @param	value	the assigned integer value
-     *
+     * Sets a response header with the given name and integer value. If the
+     * header had already been set, the new value overwrites the previous one.
+     * The <code>containsHeader</code> method can be used to test for the
+     * presence of a header before setting its value.
+     * 
+     * @param name
+     *            the name of the header
+     * @param value
+     *            the assigned integer value
      * @see #containsHeader
      * @see #addIntHeader
      */
-
     public void setIntHeader(String name, int value);
 
     /**
-     * Adds a response header with the given name and
-     * integer value.  This method allows response headers to have multiple
-     * values.
-     *
-     * @param	name	the name of the header
-     * @param	value	the assigned integer value
-     *
+     * Adds a response header with the given name and integer value. This method
+     * allows response headers to have multiple values.
+     * 
+     * @param name
+     *            the name of the header
+     * @param value
+     *            the assigned integer value
      * @see #setIntHeader
      */
-
     public void addIntHeader(String name, int value);
 
-
-    
     /**
-     * Sets the status code for this response.  This method is used to
-     * set the return status code when there is no error (for example,
-     * for the status codes SC_OK or SC_MOVED_TEMPORARILY).  If there
-     * is an error, and the caller wishes to invoke an error-page defined
-     * in the web application, the <code>sendError</code> method should be used
-     * instead.
-     * <p> The container clears the buffer and sets the Location header, preserving
+     * Sets the status code for this response. This method is used to set the
+     * return status code when there is no error (for example, for the status
+     * codes SC_OK or SC_MOVED_TEMPORARILY). If there is an error, and the
+     * caller wishes to invoke an error-page defined in the web application, the
+     * <code>sendError</code> method should be used instead.
+     * <p>
+     * The container clears the buffer and sets the Location header, preserving
      * cookies and other headers.
-     *
-     * @param	sc	the status code
-     *
+     * 
+     * @param sc
+     *            the status code
      * @see #sendError
      */
-
     public void setStatus(int sc);
-  
+
     /**
      * Sets the status code and message for this response.
      * 
-     * @param	sc	the status code
-     * @param	sm	the status message
-     * 
-     * @deprecated As of version 2.1, due to ambiguous meaning of the 
-     * message parameter. To set a status code 
-     * use <code>setStatus(int)</code>, to send an error with a description
-     * use <code>sendError(int, String)</code>.
+     * @param sc
+     *            the status code
+     * @param sm
+     *            the status message
+     * @deprecated As of version 2.1, due to ambiguous meaning of the message
+     *             parameter. To set a status code use
+     *             <code>setStatus(int)</code>, to send an error with a
+     *             description use <code>sendError(int, String)</code>.
      */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public void setStatus(int sc, String sm);
 
-    
     /**
-     * 
      * @return
-     * @since Servlet 3.0
-     * TODO SERVLET3 - Add comments
+     * @since Servlet 3.0 TODO SERVLET3 - Add comments
      */
     public int getStatus();
-    
-    
+
     /**
-     * 
      * @param name
      * @return
-     * @since Servlet 3.0
-     * TODO SERVLET3 - Add comments
+     * @since Servlet 3.0 TODO SERVLET3 - Add comments
      */
     public String getHeader(String name);
-    
-    
+
     /**
-     * 
      * @param name
      * @return
-     * @since Servlet 3.0
-     * TODO SERVLET3 - Add comments
+     * @since Servlet 3.0 TODO SERVLET3 - Add comments
      */
     public Collection<String> getHeaders(String name);
 
-    
     /**
-     * 
      * @return
-     * @since Servlet 3.0
-     * TODO SERVLET3 - Add comments
+     * @since Servlet 3.0 TODO SERVLET3 - Add comments
      */
     public Collection<String> getHeaderNames();
 
-    
     /*
      * Server status codes; see RFC 2068.
      */
@@ -368,165 +333,138 @@ public interface HttpServletResponse ext
     /**
      * Status code (100) indicating the client can continue.
      */
-
     public static final int SC_CONTINUE = 100;
 
-    
     /**
-     * Status code (101) indicating the server is switching protocols
-     * according to Upgrade header.
+     * Status code (101) indicating the server is switching protocols according
+     * to Upgrade header.
      */
-
     public static final int SC_SWITCHING_PROTOCOLS = 101;
 
     /**
      * Status code (200) indicating the request succeeded normally.
      */
-
     public static final int SC_OK = 200;
 
     /**
-     * Status code (201) indicating the request succeeded and created
-     * a new resource on the server.
+     * Status code (201) indicating the request succeeded and created a new
+     * resource on the server.
      */
-
     public static final int SC_CREATED = 201;
 
     /**
-     * Status code (202) indicating that a request was accepted for
-     * processing, but was not completed.
+     * Status code (202) indicating that a request was accepted for processing,
+     * but was not completed.
      */
-
     public static final int SC_ACCEPTED = 202;
 
     /**
-     * Status code (203) indicating that the meta information presented
-     * by the client did not originate from the server.
+     * Status code (203) indicating that the meta information presented by the
+     * client did not originate from the server.
      */
-
     public static final int SC_NON_AUTHORITATIVE_INFORMATION = 203;
 
     /**
-     * Status code (204) indicating that the request succeeded but that
-     * there was no new information to return.
+     * Status code (204) indicating that the request succeeded but that there
+     * was no new information to return.
      */
-
     public static final int SC_NO_CONTENT = 204;
 
     /**
-     * Status code (205) indicating that the agent <em>SHOULD</em> reset
-     * the document view which caused the request to be sent.
+     * Status code (205) indicating that the agent <em>SHOULD</em> reset the
+     * document view which caused the request to be sent.
      */
-
     public static final int SC_RESET_CONTENT = 205;
 
     /**
-     * Status code (206) indicating that the server has fulfilled
-     * the partial GET request for the resource.
+     * Status code (206) indicating that the server has fulfilled the partial
+     * GET request for the resource.
      */
-
     public static final int SC_PARTIAL_CONTENT = 206;
 
     /**
-     * Status code (300) indicating that the requested resource
-     * corresponds to any one of a set of representations, each with
-     * its own specific location.
+     * Status code (300) indicating that the requested resource corresponds to
+     * any one of a set of representations, each with its own specific location.
      */
-
     public static final int SC_MULTIPLE_CHOICES = 300;
 
     /**
-     * Status code (301) indicating that the resource has permanently
-     * moved to a new location, and that future references should use a
-     * new URI with their requests.
+     * Status code (301) indicating that the resource has permanently moved to a
+     * new location, and that future references should use a new URI with their
+     * requests.
      */
-
     public static final int SC_MOVED_PERMANENTLY = 301;
 
     /**
-     * Status code (302) indicating that the resource has temporarily
-     * moved to another location, but that future references should
-     * still use the original URI to access the resource.
-     *
-     * This definition is being retained for backwards compatibility.
-     * SC_FOUND is now the preferred definition.
+     * Status code (302) indicating that the resource has temporarily moved to
+     * another location, but that future references should still use the
+     * original URI to access the resource. This definition is being retained
+     * for backwards compatibility. SC_FOUND is now the preferred definition.
      */
-
     public static final int SC_MOVED_TEMPORARILY = 302;
 
     /**
-    * Status code (302) indicating that the resource reside
-    * temporarily under a different URI. Since the redirection might
-    * be altered on occasion, the client should continue to use the
-    * Request-URI for future requests.(HTTP/1.1) To represent the
-    * status code (302), it is recommended to use this variable.
-    */
-
+     * Status code (302) indicating that the resource reside temporarily under a
+     * different URI. Since the redirection might be altered on occasion, the
+     * client should continue to use the Request-URI for future
+     * requests.(HTTP/1.1) To represent the status code (302), it is recommended
+     * to use this variable.
+     */
     public static final int SC_FOUND = 302;
 
     /**
-     * Status code (303) indicating that the response to the request
-     * can be found under a different URI.
+     * Status code (303) indicating that the response to the request can be
+     * found under a different URI.
      */
-
     public static final int SC_SEE_OTHER = 303;
 
     /**
-     * Status code (304) indicating that a conditional GET operation
-     * found that the resource was available and not modified.
+     * Status code (304) indicating that a conditional GET operation found that
+     * the resource was available and not modified.
      */
-
     public static final int SC_NOT_MODIFIED = 304;
 
     /**
-     * Status code (305) indicating that the requested resource
-     * <em>MUST</em> be accessed through the proxy given by the
-     * <code><em>Location</em></code> field.
+     * Status code (305) indicating that the requested resource <em>MUST</em> be
+     * accessed through the proxy given by the <code><em>Location</em></code>
+     * field.
      */
-
     public static final int SC_USE_PROXY = 305;
 
-     /**
-     * Status code (307) indicating that the requested resource 
-     * resides temporarily under a different URI. The temporary URI
-     * <em>SHOULD</em> be given by the <code><em>Location</em></code> 
-     * field in the response.
+    /**
+     * Status code (307) indicating that the requested resource resides
+     * temporarily under a different URI. The temporary URI <em>SHOULD</em> be
+     * given by the <code><em>Location</em></code> field in the response.
      */
-
-     public static final int SC_TEMPORARY_REDIRECT = 307;
+    public static final int SC_TEMPORARY_REDIRECT = 307;
 
     /**
      * Status code (400) indicating the request sent by the client was
      * syntactically incorrect.
      */
-
     public static final int SC_BAD_REQUEST = 400;
 
     /**
      * Status code (401) indicating that the request requires HTTP
      * authentication.
      */
-
     public static final int SC_UNAUTHORIZED = 401;
 
     /**
      * Status code (402) reserved for future use.
      */
-
     public static final int SC_PAYMENT_REQUIRED = 402;
 
     /**
-     * Status code (403) indicating the server understood the request
-     * but refused to fulfill it.
+     * Status code (403) indicating the server understood the request but
+     * refused to fulfill it.
      */
-
     public static final int SC_FORBIDDEN = 403;
 
     /**
      * Status code (404) indicating that the requested resource is not
      * available.
      */
-
     public static final int SC_NOT_FOUND = 404;
 
     /**
@@ -534,143 +472,121 @@ public interface HttpServletResponse ext
      * <code><em>Request-Line</em></code> is not allowed for the resource
      * identified by the <code><em>Request-URI</em></code>.
      */
-
     public static final int SC_METHOD_NOT_ALLOWED = 405;
 
     /**
-     * Status code (406) indicating that the resource identified by the
-     * request is only capable of generating response entities which have
-     * content characteristics not acceptable according to the accept
-     * headers sent in the request.
+     * Status code (406) indicating that the resource identified by the request
+     * is only capable of generating response entities which have content
+     * characteristics not acceptable according to the accept headers sent in
+     * the request.
      */
-
     public static final int SC_NOT_ACCEPTABLE = 406;
 
     /**
      * Status code (407) indicating that the client <em>MUST</em> first
      * authenticate itself with the proxy.
      */
-
     public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
 
     /**
-     * Status code (408) indicating that the client did not produce a
-     * request within the time that the server was prepared to wait.
+     * Status code (408) indicating that the client did not produce a request
+     * within the time that the server was prepared to wait.
      */
-
     public static final int SC_REQUEST_TIMEOUT = 408;
 
     /**
-     * Status code (409) indicating that the request could not be
-     * completed due to a conflict with the current state of the
-     * resource.
+     * Status code (409) indicating that the request could not be completed due
+     * to a conflict with the current state of the resource.
      */
-
     public static final int SC_CONFLICT = 409;
 
     /**
-     * Status code (410) indicating that the resource is no longer
-     * available at the server and no forwarding address is known.
-     * This condition <em>SHOULD</em> be considered permanent.
+     * Status code (410) indicating that the resource is no longer available at
+     * the server and no forwarding address is known. This condition
+     * <em>SHOULD</em> be considered permanent.
      */
-
     public static final int SC_GONE = 410;
 
     /**
-     * Status code (411) indicating that the request cannot be handled
-     * without a defined <code><em>Content-Length</em></code>.
+     * Status code (411) indicating that the request cannot be handled without a
+     * defined <code><em>Content-Length</em></code>.
      */
-
     public static final int SC_LENGTH_REQUIRED = 411;
 
     /**
-     * Status code (412) indicating that the precondition given in one
-     * or more of the request-header fields evaluated to false when it
-     * was tested on the server.
+     * Status code (412) indicating that the precondition given in one or more
+     * of the request-header fields evaluated to false when it was tested on the
+     * server.
      */
-
     public static final int SC_PRECONDITION_FAILED = 412;
 
     /**
-     * Status code (413) indicating that the server is refusing to process
-     * the request because the request entity is larger than the server is
-     * willing or able to process.
+     * Status code (413) indicating that the server is refusing to process the
+     * request because the request entity is larger than the server is willing
+     * or able to process.
      */
-
     public static final int SC_REQUEST_ENTITY_TOO_LARGE = 413;
 
     /**
-     * Status code (414) indicating that the server is refusing to service
-     * the request because the <code><em>Request-URI</em></code> is longer
-     * than the server is willing to interpret.
+     * Status code (414) indicating that the server is refusing to service the
+     * request because the <code><em>Request-URI</em></code> is longer than the
+     * server is willing to interpret.
      */
-
     public static final int SC_REQUEST_URI_TOO_LONG = 414;
 
     /**
-     * Status code (415) indicating that the server is refusing to service
-     * the request because the entity of the request is in a format not
-     * supported by the requested resource for the requested method.
+     * Status code (415) indicating that the server is refusing to service the
+     * request because the entity of the request is in a format not supported by
+     * the requested resource for the requested method.
      */
-
     public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;
 
     /**
-     * Status code (416) indicating that the server cannot serve the
-     * requested byte range.
+     * Status code (416) indicating that the server cannot serve the requested
+     * byte range.
      */
-
     public static final int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
 
     /**
      * Status code (417) indicating that the server could not meet the
      * expectation given in the Expect request header.
      */
-
     public static final int SC_EXPECTATION_FAILED = 417;
 
     /**
-     * Status code (500) indicating an error inside the HTTP server
-     * which prevented it from fulfilling the request.
+     * Status code (500) indicating an error inside the HTTP server which
+     * prevented it from fulfilling the request.
      */
-
     public static final int SC_INTERNAL_SERVER_ERROR = 500;
 
     /**
-     * Status code (501) indicating the HTTP server does not support
-     * the functionality needed to fulfill the request.
+     * Status code (501) indicating the HTTP server does not support the
+     * functionality needed to fulfill the request.
      */
-
     public static final int SC_NOT_IMPLEMENTED = 501;
 
     /**
-     * Status code (502) indicating that the HTTP server received an
-     * invalid response from a server it consulted when acting as a
-     * proxy or gateway.
+     * Status code (502) indicating that the HTTP server received an invalid
+     * response from a server it consulted when acting as a proxy or gateway.
      */
-
     public static final int SC_BAD_GATEWAY = 502;
 
     /**
-     * Status code (503) indicating that the HTTP server is
-     * temporarily overloaded, and unable to handle the request.
+     * Status code (503) indicating that the HTTP server is temporarily
+     * overloaded, and unable to handle the request.
      */
-
     public static final int SC_SERVICE_UNAVAILABLE = 503;
 
     /**
-     * Status code (504) indicating that the server did not receive
-     * a timely response from the upstream server while acting as
-     * a gateway or proxy.
+     * Status code (504) indicating that the server did not receive a timely
+     * response from the upstream server while acting as a gateway or proxy.
      */
-
     public static final int SC_GATEWAY_TIMEOUT = 504;
 
     /**
-     * Status code (505) indicating that the server does not support
-     * or refuses to support the HTTP protocol version that was used
-     * in the request message.
+     * Status code (505) indicating that the server does not support or refuses
+     * to support the HTTP protocol version that was used in the request
+     * message.
      */
-
     public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
 }

Modified: tomcat/trunk/java/javax/servlet/http/HttpServletResponseWrapper.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/HttpServletResponseWrapper.java?rev=967146&r1=967145&r2=967146&view=diff
==============================================================================
--- tomcat/trunk/java/javax/servlet/http/HttpServletResponseWrapper.java (original)
+++ tomcat/trunk/java/javax/servlet/http/HttpServletResponseWrapper.java Fri Jul 23 16:03:25 2010
@@ -1,19 +1,19 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package javax.servlet.http;
 
 import java.io.IOException;
@@ -22,216 +22,206 @@ import java.util.Collection;
 import javax.servlet.ServletResponseWrapper;
 
 /**
+ * Provides a convenient implementation of the HttpServletResponse interface
+ * that can be subclassed by developers wishing to adapt the response from a
+ * Servlet. This class implements the Wrapper or Decorator pattern. Methods
+ * default to calling through to the wrapped response object.
  * 
- * Provides a convenient implementation of the HttpServletResponse interface that
- * can be subclassed by developers wishing to adapt the response from a Servlet.
- * This class implements the Wrapper or Decorator pattern. Methods default to
- * calling through to the wrapped response object.
- * 
- * @author 	Various
- * @version 	$Version$
-  * @since	v 2.3
- *
- * @see 	javax.servlet.http.HttpServletResponse
- *
+ * @author Various
+ * @version $Version$
+ * @since v 2.3
+ * @see javax.servlet.http.HttpServletResponse
  */
+public class HttpServletResponseWrapper extends ServletResponseWrapper
+        implements HttpServletResponse {
 
-public class HttpServletResponseWrapper extends ServletResponseWrapper implements HttpServletResponse {
-
-
-    /** 
-    * Constructs a response adaptor wrapping the given response.
-    * @throws java.lang.IllegalArgumentException if the response is null
-    */
+    /**
+     * Constructs a response adaptor wrapping the given response.
+     * 
+     * @throws java.lang.IllegalArgumentException
+     *             if the response is null
+     */
     public HttpServletResponseWrapper(HttpServletResponse response) {
-	    super(response);
+        super(response);
     }
-    
+
     private HttpServletResponse _getHttpServletResponse() {
-	return (HttpServletResponse) super.getResponse();
+        return (HttpServletResponse) super.getResponse();
     }
-    
+
     /**
      * The default behavior of this method is to call addCookie(Cookie cookie)
      * on the wrapped response object.
      */
     public void addCookie(Cookie cookie) {
-	this._getHttpServletResponse().addCookie(cookie);
+        this._getHttpServletResponse().addCookie(cookie);
     }
 
     /**
-     * The default behavior of this method is to call containsHeader(String name)
-     * on the wrapped response object.
+     * The default behavior of this method is to call containsHeader(String
+     * name) on the wrapped response object.
      */
-
- 
     public boolean containsHeader(String name) {
-	return this._getHttpServletResponse().containsHeader(name);
+        return this._getHttpServletResponse().containsHeader(name);
     }
-    
+
     /**
-     * The default behavior of this method is to call encodeURL(String url)
-     * on the wrapped response object.
+     * The default behavior of this method is to call encodeURL(String url) on
+     * the wrapped response object.
      */
     public String encodeURL(String url) {
-	return this._getHttpServletResponse().encodeURL(url);
+        return this._getHttpServletResponse().encodeURL(url);
     }
 
     /**
-     * The default behavior of this method is to return encodeRedirectURL(String url)
-     * on the wrapped response object.
+     * The default behavior of this method is to return encodeRedirectURL(String
+     * url) on the wrapped response object.
      */
     public String encodeRedirectURL(String url) {
-	return this._getHttpServletResponse().encodeRedirectURL(url);
+        return this._getHttpServletResponse().encodeRedirectURL(url);
     }
 
     /**
-     * The default behavior of this method is to call encodeUrl(String url)
-     * on the wrapped response object.
+     * The default behavior of this method is to call encodeUrl(String url) on
+     * the wrapped response object.
+     * 
      * @deprecated As of Version 3.0 of the Java Servlet API
      */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String encodeUrl(String url) {
-	return this._getHttpServletResponse().encodeUrl(url);
+        return this._getHttpServletResponse().encodeUrl(url);
     }
-    
+
     /**
-     * The default behavior of this method is to return encodeRedirectUrl(String url)
-     * on the wrapped response object.
+     * The default behavior of this method is to return encodeRedirectUrl(String
+     * url) on the wrapped response object.
+     * 
      * @deprecated As of Version 3.0 of the Java Servlet API
      */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String encodeRedirectUrl(String url) {
-	return this._getHttpServletResponse().encodeRedirectUrl(url);
+        return this._getHttpServletResponse().encodeRedirectUrl(url);
     }
-    
+
     /**
-     * The default behavior of this method is to call sendError(int sc, String msg)
-     * on the wrapped response object.
+     * The default behavior of this method is to call sendError(int sc, String
+     * msg) on the wrapped response object.
      */
     public void sendError(int sc, String msg) throws IOException {
-	this._getHttpServletResponse().sendError(sc, msg);
+        this._getHttpServletResponse().sendError(sc, msg);
     }
 
     /**
-     * The default behavior of this method is to call sendError(int sc)
-     * on the wrapped response object.
+     * The default behavior of this method is to call sendError(int sc) on the
+     * wrapped response object.
      */
-
-
     public void sendError(int sc) throws IOException {
-	this._getHttpServletResponse().sendError(sc);
+        this._getHttpServletResponse().sendError(sc);
     }
 
     /**
-     * The default behavior of this method is to return sendRedirect(String location)
-     * on the wrapped response object.
+     * The default behavior of this method is to return sendRedirect(String
+     * location) on the wrapped response object.
      */
     public void sendRedirect(String location) throws IOException {
-	this._getHttpServletResponse().sendRedirect(location);
+        this._getHttpServletResponse().sendRedirect(location);
     }
-    
+
     /**
-     * The default behavior of this method is to call setDateHeader(String name, long date)
-     * on the wrapped response object.
+     * The default behavior of this method is to call setDateHeader(String name,
+     * long date) on the wrapped response object.
      */
     public void setDateHeader(String name, long date) {
-	this._getHttpServletResponse().setDateHeader(name, date);
+        this._getHttpServletResponse().setDateHeader(name, date);
     }
-    
+
     /**
-     * The default behavior of this method is to call addDateHeader(String name, long date)
-     * on the wrapped response object.
+     * The default behavior of this method is to call addDateHeader(String name,
+     * long date) on the wrapped response object.
      */
-   public void addDateHeader(String name, long date) {
-	this._getHttpServletResponse().addDateHeader(name, date);
+    public void addDateHeader(String name, long date) {
+        this._getHttpServletResponse().addDateHeader(name, date);
     }
-    
+
     /**
-     * The default behavior of this method is to return setHeader(String name, String value)
-     * on the wrapped response object.
+     * The default behavior of this method is to return setHeader(String name,
+     * String value) on the wrapped response object.
      */
     public void setHeader(String name, String value) {
-	this._getHttpServletResponse().setHeader(name, value);
+        this._getHttpServletResponse().setHeader(name, value);
     }
-    
+
     /**
-     * The default behavior of this method is to return addHeader(String name, String value)
-     * on the wrapped response object.
+     * The default behavior of this method is to return addHeader(String name,
+     * String value) on the wrapped response object.
      */
-     public void addHeader(String name, String value) {
-	this._getHttpServletResponse().addHeader(name, value);
+    public void addHeader(String name, String value) {
+        this._getHttpServletResponse().addHeader(name, value);
     }
-    
+
     /**
-     * The default behavior of this method is to call setIntHeader(String name, int value)
-     * on the wrapped response object.
+     * The default behavior of this method is to call setIntHeader(String name,
+     * int value) on the wrapped response object.
      */
     public void setIntHeader(String name, int value) {
-	this._getHttpServletResponse().setIntHeader(name, value);
+        this._getHttpServletResponse().setIntHeader(name, value);
     }
-    
+
     /**
-     * The default behavior of this method is to call addIntHeader(String name, int value)
-     * on the wrapped response object.
+     * The default behavior of this method is to call addIntHeader(String name,
+     * int value) on the wrapped response object.
      */
     public void addIntHeader(String name, int value) {
-	this._getHttpServletResponse().addIntHeader(name, value);
+        this._getHttpServletResponse().addIntHeader(name, value);
     }
 
     /**
-     * The default behavior of this method is to call setStatus(int sc)
-     * on the wrapped response object.
+     * The default behavior of this method is to call setStatus(int sc) on the
+     * wrapped response object.
      */
-
-
     public void setStatus(int sc) {
-	this._getHttpServletResponse().setStatus(sc);
+        this._getHttpServletResponse().setStatus(sc);
     }
-    
+
     /**
-     * The default behavior of this method is to call setStatus(int sc, String sm)
-     * on the wrapped response object.
+     * The default behavior of this method is to call setStatus(int sc, String
+     * sm) on the wrapped response object.
+     * 
      * @deprecated As of Version 3.0 of the Java Servlet API
      */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public void setStatus(int sc, String sm) {
-	this._getHttpServletResponse().setStatus(sc, sm);
+        this._getHttpServletResponse().setStatus(sc, sm);
     }
 
-
     /**
-     * @since Servlet 3.0
-     * TODO SERVLET3 - Add comments
+     * @since Servlet 3.0 TODO SERVLET3 - Add comments
      */
     public int getStatus() {
         return this._getHttpServletResponse().getStatus();
     }
 
-     
     /**
-     * @since Servlet 3.0
-     * TODO SERVLET3 - Add comments
+     * @since Servlet 3.0 TODO SERVLET3 - Add comments
      */
     public String getHeader(String name) {
         return this._getHttpServletResponse().getHeader(name);
     }
 
-    
     /**
-     * @since Servlet 3.0
-     * TODO SERVLET3 - Add comments
+     * @since Servlet 3.0 TODO SERVLET3 - Add comments
      */
     public Collection<String> getHeaders(String name) {
         return this._getHttpServletResponse().getHeaders(name);
     }
 
     /**
-     * @since Servlet 3.0
-     * TODO SERVLET3 - Add comments
+     * @since Servlet 3.0 TODO SERVLET3 - Add comments
      */
     public Collection<String> getHeaderNames() {
         return this._getHttpServletResponse().getHeaderNames();
     }
-
 }

Modified: tomcat/trunk/java/javax/servlet/http/HttpSession.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/HttpSession.java?rev=967146&r1=967145&r2=967146&view=diff
==============================================================================
--- tomcat/trunk/java/javax/servlet/http/HttpSession.java (original)
+++ tomcat/trunk/java/javax/servlet/http/HttpSession.java Fri Jul 23 16:03:25 2010
@@ -1,417 +1,286 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package javax.servlet.http;
 
 import java.util.Enumeration;
 import javax.servlet.ServletContext;
 
 /**
- *
- * Provides a way to identify a user across more than one page
- * request or visit to a Web site and to store information about that user.
- *
- * <p>The servlet container uses this interface to create a session
- * between an HTTP client and an HTTP server. The session persists
- * for a specified time period, across more than one connection or
- * page request from the user. A session usually corresponds to one 
- * user, who may visit a site many times. The server can maintain a 
- * session in many ways such as using cookies or rewriting URLs.
- *
- * <p>This interface allows servlets to 
+ * Provides a way to identify a user across more than one page request or visit
+ * to a Web site and to store information about that user.
+ * <p>
+ * The servlet container uses this interface to create a session between an HTTP
+ * client and an HTTP server. The session persists for a specified time period,
+ * across more than one connection or page request from the user. A session
+ * usually corresponds to one user, who may visit a site many times. The server
+ * can maintain a session in many ways such as using cookies or rewriting URLs.
+ * <p>
+ * This interface allows servlets to
  * <ul>
- * <li>View and manipulate information about a session, such as
- *     the session identifier, creation time, and last accessed time
- * <li>Bind objects to sessions, allowing user information to persist 
- *     across multiple user connections
+ * <li>View and manipulate information about a session, such as the session
+ * identifier, creation time, and last accessed time
+ * <li>Bind objects to sessions, allowing user information to persist across
+ * multiple user connections
  * </ul>
- *
- * <p>When an application stores an object in or removes an object from a
- * session, the session checks whether the object implements
- * {@link HttpSessionBindingListener}. If it does, 
- * the servlet notifies the object that it has been bound to or unbound 
- * from the session. Notifications are sent after the binding methods complete. 
- * For session that are invalidated or expire, notifications are sent after
- * the session has been invalidated or expired.
- *
- * <p> When container migrates a session between VMs in a distributed container
- * setting, all session attributes implementing the {@link HttpSessionActivationListener}
- * interface are notified.
+ * <p>
+ * When an application stores an object in or removes an object from a session,
+ * the session checks whether the object implements
+ * {@link HttpSessionBindingListener}. If it does, the servlet notifies the
+ * object that it has been bound to or unbound from the session. Notifications
+ * are sent after the binding methods complete. For session that are invalidated
+ * or expire, notifications are sent after the session has been invalidated or
+ * expired.
+ * <p>
+ * When container migrates a session between VMs in a distributed container
+ * setting, all session attributes implementing the
+ * {@link HttpSessionActivationListener} interface are notified.
+ * <p>
+ * A servlet should be able to handle cases in which the client does not choose
+ * to join a session, such as when cookies are intentionally turned off. Until
+ * the client joins the session, <code>isNew</code> returns <code>true</code>.
+ * If the client chooses not to join the session, <code>getSession</code> will
+ * return a different session on each request, and <code>isNew</code> will
+ * always return <code>true</code>.
+ * <p>
+ * Session information is scoped only to the current web application (
+ * <code>ServletContext</code>), so information stored in one context will not
+ * be directly visible in another.
  * 
- * <p>A servlet should be able to handle cases in which
- * the client does not choose to join a session, such as when cookies are
- * intentionally turned off. Until the client joins the session,
- * <code>isNew</code> returns <code>true</code>.  If the client chooses 
- * not to join
- * the session, <code>getSession</code> will return a different session
- * on each request, and <code>isNew</code> will always return
- * <code>true</code>.
- *
- * <p>Session information is scoped only to the current web application
- * (<code>ServletContext</code>), so information stored in one context
- * will not be directly visible in another.
- *
- * @author	Various
- * @version	$Version$
- *
- *
- * @see 	HttpSessionBindingListener
- * @see 	HttpSessionContext
- *
+ * @author Various
+ * @version $Version$
+ * @see HttpSessionBindingListener
+ * @see HttpSessionContext
  */
-
 public interface HttpSession {
 
-
-
-
     /**
-     *
-     * Returns the time when this session was created, measured
-     * in milliseconds since midnight January 1, 1970 GMT.
-     *
-     * @return				a <code>long</code> specifying
-     * 					when this session was created,
-     *					expressed in 
-     *					milliseconds since 1/1/1970 GMT
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
-     *
+     * Returns the time when this session was created, measured in milliseconds
+     * since midnight January 1, 1970 GMT.
+     * 
+     * @return a <code>long</code> specifying when this session was created,
+     *         expressed in milliseconds since 1/1/1970 GMT
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
      */
-
     public long getCreationTime();
-    
-    
-    
-    
-    /**
-     *
-     * Returns a string containing the unique identifier assigned 
-     * to this session. The identifier is assigned 
-     * by the servlet container and is implementation dependent.
-     * 
-     * @return				a string specifying the identifier
-     *					assigned to this session
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
-     *
-     */
 
-    public String getId();
-    
-    
-    
-
-    /**
-     *
-     * Returns the last time the client sent a request associated with
-     * this session, as the number of milliseconds since midnight
-     * January 1, 1970 GMT, and marked by the time the container received the request. 
-     *
-     * <p>Actions that your application takes, such as getting or setting
-     * a value associated with the session, do not affect the access
-     * time.
-     *
-     * @return				a <code>long</code>
-     *					representing the last time 
-     *					the client sent a request associated
-     *					with this session, expressed in 
-     *					milliseconds since 1/1/1970 GMT
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
-     *
+    /**
+     * Returns a string containing the unique identifier assigned to this
+     * session. The identifier is assigned by the servlet container and is
+     * implementation dependent.
+     * 
+     * @return a string specifying the identifier assigned to this session
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
      */
+    public String getId();
 
-    public long getLastAccessedTime();
-    
-    
     /**
-    * Returns the ServletContext to which this session belongs.
-    *    
-    * @return The ServletContext object for the web application
-    * @since 2.3
-    */
+     * Returns the last time the client sent a request associated with this
+     * session, as the number of milliseconds since midnight January 1, 1970
+     * GMT, and marked by the time the container received the request.
+     * <p>
+     * Actions that your application takes, such as getting or setting a value
+     * associated with the session, do not affect the access time.
+     * 
+     * @return a <code>long</code> representing the last time the client sent a
+     *         request associated with this session, expressed in milliseconds
+     *         since 1/1/1970 GMT
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
+     */
+    public long getLastAccessedTime();
 
+    /**
+     * Returns the ServletContext to which this session belongs.
+     * 
+     * @return The ServletContext object for the web application
+     * @since 2.3
+     */
     public ServletContext getServletContext();
 
-
     /**
-     *
-     * Specifies the time, in seconds, between client requests before the 
-     * servlet container will invalidate this session.  A negative time
-     * indicates the session should never timeout.
-     *
-     * @param interval		An integer specifying the number
-     * 				of seconds 
-     *
+     * Specifies the time, in seconds, between client requests before the
+     * servlet container will invalidate this session. A negative time indicates
+     * the session should never timeout.
+     * 
+     * @param interval
+     *            An integer specifying the number of seconds
      */
-    
     public void setMaxInactiveInterval(int interval);
 
-
-
-
-   /**
-    * Returns the maximum time interval, in seconds, that 
-    * the servlet container will keep this session open between 
-    * client accesses. After this interval, the servlet container
-    * will invalidate the session.  The maximum time interval can be set
-    * with the <code>setMaxInactiveInterval</code> method.
-    * A negative time indicates the session should never timeout.
-    *  
-    *
-    * @return		an integer specifying the number of
-    *			seconds this session remains open
-    *			between client requests
-    *
-    * @see		#setMaxInactiveInterval
-    *
-    *
-    */
-
+    /**
+     * Returns the maximum time interval, in seconds, that the servlet container
+     * will keep this session open between client accesses. After this interval,
+     * the servlet container will invalidate the session. The maximum time
+     * interval can be set with the <code>setMaxInactiveInterval</code> method.
+     * A negative time indicates the session should never timeout.
+     * 
+     * @return an integer specifying the number of seconds this session remains
+     *         open between client requests
+     * @see #setMaxInactiveInterval
+     */
     public int getMaxInactiveInterval();
-    
-    
-
 
-   /**
-    *
-    * @deprecated 	As of Version 2.1, this method is
-    *			deprecated and has no replacement.
-    *			It will be removed in a future
-    *			version of the Java Servlet API.
-    *
-    */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    /**
+     * @deprecated As of Version 2.1, this method is deprecated and has no
+     *             replacement. It will be removed in a future version of the
+     *             Java Servlet API.
+     */
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public HttpSessionContext getSessionContext();
-    
-    
-    
-    
+
     /**
-     *
      * Returns the object bound with the specified name in this session, or
      * <code>null</code> if no object is bound under the name.
-     *
-     * @param name		a string specifying the name of the object
-     *
-     * @return			the object with the specified name
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
-     *
+     * 
+     * @param name
+     *            a string specifying the name of the object
+     * @return the object with the specified name
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
      */
-  
     public Object getAttribute(String name);
-    
-    
-    
-    
-    /**
-     * @param name		a string specifying the name of the object
-     *
-     * @return			the object with the specified name
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
-     *
-     * @deprecated  As of Version 2.2, this method is
-     *          replaced by {@link #getAttribute}.
+
+    /**
+     * @param name
+     *            a string specifying the name of the object
+     * @return the object with the specified name
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
+     * @deprecated As of Version 2.2, this method is replaced by
+     *             {@link #getAttribute}.
      */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public Object getValue(String name);
-    
-    
-    
 
     /**
-     *
      * Returns an <code>Enumeration</code> of <code>String</code> objects
-     * containing the names of all the objects bound to this session. 
-     *
-     * @return			an <code>Enumeration</code> of 
-     *				<code>String</code> objects specifying the
-     *				names of all the objects bound to
-     *				this session
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
-     *
+     * containing the names of all the objects bound to this session.
+     * 
+     * @return an <code>Enumeration</code> of <code>String</code> objects
+     *         specifying the names of all the objects bound to this session
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
      */
-    
     public Enumeration<String> getAttributeNames();
-    
-    
-    
-
-    /**
-     * @return				an array of <code>String</code>
-     *					objects specifying the
-     *					names of all the objects bound to
-     *					this session
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
-     *
-     * @deprecated  As of Version 2.2, this method is
-     *          replaced by {@link #getAttributeNames}
+
+    /**
+     * @return an array of <code>String</code> objects specifying the names of
+     *         all the objects bound to this session
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
+     * @deprecated As of Version 2.2, this method is replaced by
+     *             {@link #getAttributeNames}
      */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String[] getValueNames();
-    
-    
-    
 
     /**
-     * Binds an object to this session, using the name specified.
-     * If an object of the same name is already bound to the session,
-     * the object is replaced.
-     *
-     * <p>After this method executes, and if the new object
-     * implements <code>HttpSessionBindingListener</code>,
-     * the container calls 
-     * <code>HttpSessionBindingListener.valueBound</code>. The container then   
-     * notifies any <code>HttpSessionAttributeListener</code>s in the web 
+     * Binds an object to this session, using the name specified. If an object
+     * of the same name is already bound to the session, the object is replaced.
+     * <p>
+     * After this method executes, and if the new object implements
+     * <code>HttpSessionBindingListener</code>, the container calls
+     * <code>HttpSessionBindingListener.valueBound</code>. The container then
+     * notifies any <code>HttpSessionAttributeListener</code>s in the web
      * application.
-     
-     * <p>If an object was already bound to this session of this name
-     * that implements <code>HttpSessionBindingListener</code>, its 
+     * <p>
+     * If an object was already bound to this session of this name that
+     * implements <code>HttpSessionBindingListener</code>, its
      * <code>HttpSessionBindingListener.valueUnbound</code> method is called.
-     *
-     * <p>If the value passed in is null, this has the same effect as calling 
+     * <p>
+     * If the value passed in is null, this has the same effect as calling
      * <code>removeAttribute()<code>.
-     *
-     *
-     * @param name			the name to which the object is bound;
-     *					cannot be null
-     *
-     * @param value			the object to be bound
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
-     *
+     * 
+     * @param name
+     *            the name to which the object is bound; cannot be null
+     * @param value
+     *            the object to be bound
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
      */
- 
     public void setAttribute(String name, Object value);
-    
-
-
 
-    
     /**
-     * @param name			the name to which the object is bound;
-     *					cannot be null
-     *
-     * @param value			the object to be bound; cannot be null
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
-     *
-     * @deprecated  As of Version 2.2, this method is
-     *          replaced by {@link #setAttribute}
+     * @param name
+     *            the name to which the object is bound; cannot be null
+     * @param value
+     *            the object to be bound; cannot be null
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
+     * @deprecated As of Version 2.2, this method is replaced by
+     *             {@link #setAttribute}
      */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public void putValue(String name, Object value);
 
-
-
-
-
     /**
-     *
-     * Removes the object bound with the specified name from
-     * this session. If the session does not have an object
-     * bound with the specified name, this method does nothing.
-     *
-     * <p>After this method executes, and if the object
-     * implements <code>HttpSessionBindingListener</code>,
-     * the container calls 
-     * <code>HttpSessionBindingListener.valueUnbound</code>. The container
-     * then notifies any <code>HttpSessionAttributeListener</code>s in the web 
+     * Removes the object bound with the specified name from this session. If
+     * the session does not have an object bound with the specified name, this
+     * method does nothing.
+     * <p>
+     * After this method executes, and if the object implements
+     * <code>HttpSessionBindingListener</code>, the container calls
+     * <code>HttpSessionBindingListener.valueUnbound</code>. The container then
+     * notifies any <code>HttpSessionAttributeListener</code>s in the web
      * application.
      * 
-     * 
-     *
-     * @param name				the name of the object to
-     *						remove from this session
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
+     * @param name
+     *            the name of the object to remove from this session
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
      */
-
     public void removeAttribute(String name);
 
-
-
-
-
     /**
-     * @param name				the name of the object to
-     *						remove from this session
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					invalidated session
-     *
-     * @deprecated  As of Version 2.2, this method is
-     *          replaced by {@link #removeAttribute}
+     * @param name
+     *            the name of the object to remove from this session
+     * @exception IllegalStateException
+     *                if this method is called on an invalidated session
+     * @deprecated As of Version 2.2, this method is replaced by
+     *             {@link #removeAttribute}
      */
-    @SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public void removeValue(String name);
 
-
-
-
     /**
-     *
-     * Invalidates this session then unbinds any objects bound
-     * to it. 
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					already invalidated session
-     *
+     * Invalidates this session then unbinds any objects bound to it.
+     * 
+     * @exception IllegalStateException
+     *                if this method is called on an already invalidated session
      */
-
     public void invalidate();
-    
-    
-    
-    
+
     /**
-     *
      * Returns <code>true</code> if the client does not yet know about the
-     * session or if the client chooses not to join the session.  For 
-     * example, if the server used only cookie-based sessions, and
-     * the client had disabled the use of cookies, then a session would
-     * be new on each request.
-     *
-     * @return 				<code>true</code> if the 
-     *					server has created a session, 
-     *					but the client has not yet joined
-     *
-     * @exception IllegalStateException	if this method is called on an
-     *					already invalidated session
-     *
+     * session or if the client chooses not to join the session. For example, if
+     * the server used only cookie-based sessions, and the client had disabled
+     * the use of cookies, then a session would be new on each request.
+     * 
+     * @return <code>true</code> if the server has created a session, but the
+     *         client has not yet joined
+     * @exception IllegalStateException
+     *                if this method is called on an already invalidated session
      */
-
     public boolean isNew();
-
-
-
 }
-

Modified: tomcat/trunk/java/javax/servlet/http/HttpSessionAttributeListener.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/HttpSessionAttributeListener.java?rev=967146&r1=967145&r2=967146&view=diff
==============================================================================
--- tomcat/trunk/java/javax/servlet/http/HttpSessionAttributeListener.java (original)
+++ tomcat/trunk/java/javax/servlet/http/HttpSessionAttributeListener.java Fri Jul 23 16:03:25 2010
@@ -1,36 +1,46 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package javax.servlet.http;
 
 import java.util.EventListener;
 
-	/** This listener interface can be implemented in order to
-	* get notifications of changes to the attribute lists of sessions within
-	* this web application.
-	* @since	v 2.3
-*/
-
+/**
+ * This listener interface can be implemented in order to get notifications of
+ * changes to the attribute lists of sessions within this web application.
+ * 
+ * @since v 2.3
+ */
 public interface HttpSessionAttributeListener extends EventListener {
-	/** Notification that an attribute has been added to a session. Called after the attribute is added.*/
-    public void attributeAdded ( HttpSessionBindingEvent se );
-	/** Notification that an attribute has been removed from a session. Called after the attribute is removed. */
-    public void attributeRemoved ( HttpSessionBindingEvent se );
-	/** Notification that an attribute has been replaced in a session. Called after the attribute is replaced. */
-    public void attributeReplaced ( HttpSessionBindingEvent se );
 
-}
+    /**
+     * Notification that an attribute has been added to a session. Called after
+     * the attribute is added.
+     */
+    public void attributeAdded(HttpSessionBindingEvent se);
 
+    /**
+     * Notification that an attribute has been removed from a session. Called
+     * after the attribute is removed.
+     */
+    public void attributeRemoved(HttpSessionBindingEvent se);
+
+    /**
+     * Notification that an attribute has been replaced in a session. Called
+     * after the attribute is replaced.
+     */
+    public void attributeReplaced(HttpSessionBindingEvent se);
+}

Modified: tomcat/trunk/java/javax/servlet/http/HttpSessionBindingEvent.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/HttpSessionBindingEvent.java?rev=967146&r1=967145&r2=967146&view=diff
==============================================================================
--- tomcat/trunk/java/javax/servlet/http/HttpSessionBindingEvent.java (original)
+++ tomcat/trunk/java/javax/servlet/http/HttpSessionBindingEvent.java Fri Jul 23 16:03:25 2010
@@ -1,153 +1,112 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 package javax.servlet.http;
 
-
-
 /**
- *
  * Events of this type are either sent to an object that implements
- * {@link HttpSessionBindingListener} when it is bound or 
- * unbound from a session, or to a {@link HttpSessionAttributeListener} 
- * that has been configured in the deployment descriptor when any attribute is
- * bound, unbound or replaced in a session.
- *
- * <p>The session binds the object by a call to
- * <code>HttpSession.setAttribute</code> and unbinds the object
- * by a call to <code>HttpSession.removeAttribute</code>.
- *
- *
- *
- * @author		Various
- * @version		$Version$
+ * {@link HttpSessionBindingListener} when it is bound or unbound from a
+ * session, or to a {@link HttpSessionAttributeListener} that has been
+ * configured in the deployment descriptor when any attribute is bound, unbound
+ * or replaced in a session.
+ * <p>
+ * The session binds the object by a call to
+ * <code>HttpSession.setAttribute</code> and unbinds the object by a call to
+ * <code>HttpSession.removeAttribute</code>.
  * 
- * @see 		HttpSession
- * @see 		HttpSessionBindingListener
- * @see			HttpSessionAttributeListener
+ * @author Various
+ * @version $Version$
+ * @see HttpSession
+ * @see HttpSessionBindingListener
+ * @see HttpSessionAttributeListener
  */
-
 public class HttpSessionBindingEvent extends HttpSessionEvent {
 
-
-
-
     /* The name to which the object is being bound or unbound */
 
     private String name;
-    
+
     /* The object is being bound or unbound */
 
     private Object value;
-    
-  
 
     /**
-     *
-     * Constructs an event that notifies an object that it
-     * has been bound to or unbound from a session. 
-     * To receive the event, the object must implement
+     * Constructs an event that notifies an object that it has been bound to or
+     * unbound from a session. To receive the event, the object must implement
      * {@link HttpSessionBindingListener}.
-     *
-     *
-     *
-     * @param session 	the session to which the object is bound or unbound
-     *
-     * @param name 	the name with which the object is bound or unbound
-     *
-     * @see			#getName
-     * @see			#getSession
-     *
+     * 
+     * @param session
+     *            the session to which the object is bound or unbound
+     * @param name
+     *            the name with which the object is bound or unbound
+     * @see #getName
+     * @see #getSession
      */
-
     public HttpSessionBindingEvent(HttpSession session, String name) {
-	super(session);
-	this.name = name;
+        super(session);
+        this.name = name;
     }
-    
+
     /**
-     *
-     * Constructs an event that notifies an object that it
-     * has been bound to or unbound from a session. 
-     * To receive the event, the object must implement
+     * Constructs an event that notifies an object that it has been bound to or
+     * unbound from a session. To receive the event, the object must implement
      * {@link HttpSessionBindingListener}.
-     *
-     *
-     *
-     * @param session 	the session to which the object is bound or unbound
-     *
-     * @param name 	the name with which the object is bound or unbound
-     *
-     * @see			#getName
-     * @see			#getSession
-     *
+     * 
+     * @param session
+     *            the session to which the object is bound or unbound
+     * @param name
+     *            the name with which the object is bound or unbound
+     * @see #getName
+     * @see #getSession
      */
-    
-    public HttpSessionBindingEvent(HttpSession session, String name, Object value) {
-	super(session);
-	this.name = name;
-	this.value = value;
+    public HttpSessionBindingEvent(HttpSession session, String name,
+            Object value) {
+        super(session);
+        this.name = name;
+        this.value = value;
     }
-    
-    
-   	/** Return the session that changed. */
+
+    /** Return the session that changed. */
     @Override
-    public HttpSession getSession () { 
-	return super.getSession();
+    public HttpSession getSession() {
+        return super.getSession();
     }
- 
-   
-  
-    
+
     /**
-     *
-     * Returns the name with which the attribute is bound to or
-     * unbound from the session.
-     *
-     *
-     * @return		a string specifying the name with which
-     *			the object is bound to or unbound from
-     *			the session
-     *
-     *
+     * Returns the name with which the attribute is bound to or unbound from the
+     * session.
+     * 
+     * @return a string specifying the name with which the object is bound to or
+     *         unbound from the session
      */
-
     public String getName() {
-	return name;
+        return name;
     }
-    
+
     /**
-	* Returns the value of the attribute that has been added, removed or replaced.
-	* If the attribute was added (or bound), this is the value of the attribute. If the attribute was
-	* removed (or unbound), this is the value of the removed attribute. If the attribute was replaced, this
-	* is the old value of the attribute.
-	*
-        * @since 2.3
-	*/
-	
-	public Object getValue() {
-	    return this.value;   
-	}
-    
+     * Returns the value of the attribute that has been added, removed or
+     * replaced. If the attribute was added (or bound), this is the value of the
+     * attribute. If the attribute was removed (or unbound), this is the value
+     * of the removed attribute. If the attribute was replaced, this is the old
+     * value of the attribute.
+     * 
+     * @since 2.3
+     */
+    public Object getValue() {
+        return this.value;
+    }
 }
-
-
-
-
-
-
-



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org