This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 7.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/7.0.x by this push: new 0ebe425 Polish & minor refactoring to better align with 8.5.x 0ebe425 is described below commit 0ebe425cad26bdafcabfc1f85f383491739d6ae7 Author: Mark Thomas <ma...@apache.org> AuthorDate: Wed Jul 10 15:49:19 2019 +0100 Polish & minor refactoring to better align with 8.5.x This is in preparation for looking at the larger refactoring for the addition of error state. --- java/org/apache/coyote/Response.java | 104 +++++++++++++++++++++++------------ 1 file changed, 68 insertions(+), 36 deletions(-) diff --git a/java/org/apache/coyote/Response.java b/java/org/apache/coyote/Response.java index 1d38316..38e62b2 100644 --- a/java/org/apache/coyote/Response.java +++ b/java/org/apache/coyote/Response.java @@ -32,7 +32,7 @@ import org.apache.tomcat.util.http.parser.MediaType; * @author Jason Hunter [j...@eng.sun.com] * @author James Todd [go...@eng.sun.com] * @author Harish Prabandham - * @author Hans Bergsten <h...@gefionsoftware.com> + * @author Hans Bergsten [h...@gefionsoftware.com] * @author Remy Maucherat */ public final class Response { @@ -42,7 +42,7 @@ public final class Response { /** * Default locale as mandated by the spec. */ - private static Locale DEFAULT_LOCALE = Locale.getDefault(); + private static final Locale DEFAULT_LOCALE = Locale.getDefault(); // ----------------------------------------------------- Instance Variables @@ -62,7 +62,7 @@ public final class Response { /** * Response headers. */ - MimeHeaders headers = new MimeHeaders(); + final MimeHeaders headers = new MimeHeaders(); /** @@ -74,19 +74,19 @@ public final class Response { /** * Notes. */ - Object notes[] = new Object[Constants.MAX_NOTES]; + final Object notes[] = new Object[Constants.MAX_NOTES]; /** * Committed flag. */ - boolean committed = false; + volatile boolean committed = false; /** * Action hook. */ - public ActionHook hook; + public volatile ActionHook hook; /** @@ -114,6 +114,7 @@ public final class Response { Request req; + // ------------------------------------------------------------- Properties public Request getRequest() { @@ -151,7 +152,6 @@ public final class Response { // -------------------- Per-Response "notes" -------------------- - public final void setNote(int pos, Object value) { notes[pos] = value; } @@ -164,35 +164,38 @@ public final class Response { // -------------------- Actions -------------------- - public void action(ActionCode actionCode, Object param) { if (hook != null) { - if( param==null ) + if (param == null) { hook.action(actionCode, this); - else + } else { hook.action(actionCode, param); + } } } // -------------------- State -------------------- - public int getStatus() { return status; } /** - * Set the response status + * Set the response status. + * + * @param status The status value to set */ - public void setStatus( int status ) { + public void setStatus(int status) { this.status = status; } /** * Get the status message. + * + * @return The message associated with the current status */ public String getMessage() { return message; @@ -201,6 +204,8 @@ public final class Response { /** * Set the status message. + * + * @param message The status message to set */ public void setMessage(String message) { this.message = message; @@ -230,10 +235,10 @@ public final class Response { // -----------------Error State -------------------- - /** - * Set the error Exception that occurred during - * request processing. + * Set the error Exception that occurred during request processing. + * + * @param ex The exception that occurred */ public void setErrorException(Exception ex) { errorException = ex; @@ -241,8 +246,9 @@ public final class Response { /** - * Get the Exception that occurred during request - * processing. + * Get the Exception that occurred during request processing. + * + * @return The exception that occurred */ public Exception getErrorException() { return errorException; @@ -281,8 +287,14 @@ public final class Response { // -------------------- Headers -------------------- /** - * Warning: This method always returns <code>false<code> for Content-Type + * Does the response contain the given header. + * <br> + * Warning: This method always returns <code>false</code> for Content-Type * and Content-Length. + * + * @param name The name of the header of interest + * + * @return {@code true} if the response contains the header. */ public boolean containsHeader(String name) { return headers.getHeader(name) != null; @@ -354,8 +366,10 @@ public final class Response { } /** - * Called explicitly by user to set the Content-Language and - * the default encoding + * Called explicitly by user to set the Content-Language and the default + * encoding. + * + * @param locale The locale to use for this response */ public void setLocale(Locale locale) { @@ -382,33 +396,42 @@ public final class Response { /** * Return the content language. + * + * @return The language code for the language currently associated with this + * response */ public String getContentLanguage() { return contentLanguage; } - /* - * Overrides the name of the character encoding used in the body - * of the response. This method must be called prior to writing output - * using getWriter(). + + /** + * Overrides the character encoding used in the body of the response. This + * method must be called prior to writing output using getWriter(). * - * @param charset String containing the name of the character encoding. + * @param characterEncoding The name of character encoding. */ - public void setCharacterEncoding(String charset) { - - if (isCommitted()) + public void setCharacterEncoding(String characterEncoding) { + if (isCommitted()) { return; - if (charset == null) + } + if (characterEncoding == null) { return; + } - characterEncoding = charset; - charsetSet=true; + this.characterEncoding = characterEncoding; + charsetSet = true; } + + /** + * @return The name of the current encoding + */ public String getCharacterEncoding() { return characterEncoding; } + /** * Sets the content type. * @@ -459,9 +482,7 @@ public final class Response { String ret = contentType; - if (ret != null - && characterEncoding != null - && charsetSet) { + if (ret != null && characterEncoding != null && charsetSet) { ret = ret + ";charset=" + characterEncoding; } @@ -489,13 +510,14 @@ public final class Response { /** * Write a chunk of bytes. */ - public void doWrite(ByteChunk chunk/*byte buffer[], int pos, int count*/) + public void doWrite(ByteChunk chunk) throws IOException { outputBuffer.doWrite(chunk, this); contentWritten+=chunk.getLength(); } + // -------------------- public void recycle() { @@ -519,6 +541,10 @@ public final class Response { /** * Bytes written by application - i.e. before compression, chunking, etc. + * + * @return The total number of bytes written to the response by the + * application. This will not be the number of bytes written to the + * network which may be more or less than this value. */ public long getContentWritten() { return contentWritten; @@ -526,6 +552,12 @@ public final class Response { /** * Bytes written to socket - i.e. after compression, chunking, etc. + * + * @param flush Should any remaining bytes be flushed before returning the + * total? If {@code false} bytes remaining in the buffer will + * not be included in the returned value + * + * @return The total number of bytes written to the socket for this response */ public long getBytesWritten(boolean flush) { if (flush) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org