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 2023/05/05 15:45:26 UTC

[tomcat] 02/02: Clean-up, formatting. No functional change.

This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 15a1d0e0c4fbfb3afe5d3c86f8f1dd8655c38499
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Fri May 5 16:45:14 2023 +0100

    Clean-up, formatting. No functional change.
    
    Preparation before back-porting RFC 918 priorities.
---
 .../tomcat/util/http/parser/Authorization.java     |  21 +--
 .../org/apache/tomcat/util/http/parser/Cookie.java |  48 +++--
 .../apache/tomcat/util/http/parser/EntityTag.java  |  10 +-
 java/org/apache/tomcat/util/http/parser/Host.java  |  12 +-
 .../apache/tomcat/util/http/parser/HttpParser.java | 210 +++++++++------------
 .../apache/tomcat/util/http/parser/MediaType.java  |   6 +-
 .../tomcat/util/http/parser/MediaTypeCache.java    |  13 +-
 .../apache/tomcat/util/http/parser/TokenList.java  |  22 +--
 .../apache/tomcat/util/http/parser/Upgrade.java    |   2 +-
 9 files changed, 146 insertions(+), 198 deletions(-)

diff --git a/java/org/apache/tomcat/util/http/parser/Authorization.java b/java/org/apache/tomcat/util/http/parser/Authorization.java
index 8afba9bd1c..bb7b1a16e9 100644
--- a/java/org/apache/tomcat/util/http/parser/Authorization.java
+++ b/java/org/apache/tomcat/util/http/parser/Authorization.java
@@ -32,8 +32,8 @@ public class Authorization {
     static {
         // Digest field types.
         // Note: These are more relaxed than RFC2617. This adheres to the
-        //       recommendation of RFC2616 that servers are tolerant of buggy
-        //       clients when they can be so without ambiguity.
+        // recommendation of RFC2616 that servers are tolerant of buggy
+        // clients when they can be so without ambiguity.
         fieldTypes.put("username", FieldType.QUOTED_STRING);
         fieldTypes.put("realm", FieldType.QUOTED_STRING);
         fieldTypes.put("nonce", FieldType.QUOTED_STRING);
@@ -58,21 +58,18 @@ public class Authorization {
 
 
     /**
-     * Parses an HTTP Authorization header for DIGEST authentication as per RFC
-     * 2617 section 3.2.2.
+     * Parses an HTTP Authorization header for DIGEST authentication as per RFC 2617 section 3.2.2.
      *
      * @param input The header value to parse
      *
-     * @return  A map of directives and values as {@link String}s or
-     *          <code>null</code> if a parsing error occurs. Although the
-     *          values returned are {@link String}s they will have been
-     *          validated to ensure that they conform to RFC 2617.
+     * @return A map of directives and values as {@link String}s or <code>null</code> if a parsing error occurs.
+     *             Although the values returned are {@link String}s they will have been validated to ensure that they
+     *             conform to RFC 2617.
      *
-     * @throws IllegalArgumentException If the header does not conform to RFC
-     *                                  2617
-     * @throws java.io.IOException If an error occurs while reading the input
+     * @throws IllegalArgumentException If the header does not conform to RFC 2617
+     * @throws java.io.IOException      If an error occurs while reading the input
      */
-    public static Map<String,String> parseAuthorizationDigest (StringReader input)
+    public static Map<String,String> parseAuthorizationDigest(StringReader input)
             throws IllegalArgumentException, IOException {
 
         Map<String,String> result = new HashMap<>();
diff --git a/java/org/apache/tomcat/util/http/parser/Cookie.java b/java/org/apache/tomcat/util/http/parser/Cookie.java
index 7a0310ceaf..63b30d76c7 100644
--- a/java/org/apache/tomcat/util/http/parser/Cookie.java
+++ b/java/org/apache/tomcat/util/http/parser/Cookie.java
@@ -27,27 +27,28 @@ import org.apache.tomcat.util.res.StringManager;
 
 
 /**
- * <p>Cookie header parser based on RFC6265</p>
- * <p>The parsing of cookies using RFC6265 is more relaxed that the
- * specification in the following ways:</p>
+ * <p>
+ * Cookie header parser based on RFC6265
+ * </p>
+ * <p>
+ * The parsing of cookies using RFC6265 is more relaxed that the specification in the following ways:
+ * </p>
  * <ul>
- *   <li>Values 0x80 to 0xFF are permitted in cookie-octet to support the use of
- *       UTF-8 in cookie values as used by HTML 5.</li>
- *   <li>For cookies without a value, the '=' is not required after the name as
- *       some browsers do not sent it.</li>
+ * <li>Values 0x80 to 0xFF are permitted in cookie-octet to support the use of UTF-8 in cookie values as used by HTML
+ * 5.</li>
+ * <li>For cookies without a value, the '=' is not required after the name as some browsers do not sent it.</li>
  * </ul>
- *
- * <p>Implementation note:<br>
- * This class has been carefully tuned. Before committing any changes, ensure
- * that the TesterCookiePerformance unit test continues to give results within
- * 1% for the old and new parsers.</p>
+ * <p>
+ * Implementation note:<br>
+ * This class has been carefully tuned. Before committing any changes, ensure that the TesterCookiePerformance unit test
+ * continues to give results within 1% for the old and new parsers.
+ * </p>
  */
 public class Cookie {
 
     private static final Log log = LogFactory.getLog(Cookie.class);
     private static final UserDataHelper invalidCookieLog = new UserDataHelper(log);
-    private static final StringManager sm =
-            StringManager.getManager("org.apache.tomcat.util.http.parser");
+    private static final StringManager sm = StringManager.getManager("org.apache.tomcat.util.http.parser");
 
     private static final boolean isCookieOctet[] = new boolean[256];
     private static final boolean isText[] = new boolean[256];
@@ -64,10 +65,10 @@ public class Cookie {
 
     static {
         // %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E (RFC6265)
-        // %x80 to %xFF                                 (UTF-8)
+        // %x80 to %xFF (UTF-8)
         for (int i = 0; i < 256; i++) {
-            if (i < 0x21 || i == QUOTE_BYTE || i == COMMA_BYTE ||
-                    i == SEMICOLON_BYTE || i == SLASH_BYTE || i == DEL_BYTE) {
+            if (i < 0x21 || i == QUOTE_BYTE || i == COMMA_BYTE || i == SEMICOLON_BYTE || i == SLASH_BYTE ||
+                    i == DEL_BYTE) {
                 isCookieOctet[i] = false;
             } else {
                 isCookieOctet[i] = true;
@@ -88,8 +89,7 @@ public class Cookie {
     }
 
 
-    public static void parseCookie(byte[] bytes, int offset, int len,
-            ServerCookies serverCookies) {
+    public static void parseCookie(byte[] bytes, int offset, int len, ServerCookies serverCookies) {
 
         // ByteBuffer is used throughout this parser as it allows the byte[]
         // and position information to be easily passed between parsing methods
@@ -146,7 +146,7 @@ public class Cookie {
 
 
     private static void skipLWS(ByteBuffer bb) {
-        while(bb.hasRemaining()) {
+        while (bb.hasRemaining()) {
             byte b = bb.get();
             if (b != TAB_BYTE && b != SPACE_BYTE) {
                 bb.rewind();
@@ -157,7 +157,7 @@ public class Cookie {
 
 
     private static void skipUntilSemiColon(ByteBuffer bb) {
-        while(bb.hasRemaining()) {
+        while (bb.hasRemaining()) {
             if (bb.get() == SEMICOLON_BYTE) {
                 break;
             }
@@ -180,8 +180,7 @@ public class Cookie {
 
 
     /**
-     * Similar to readCookieValue() but treats a comma as part of an invalid
-     * value.
+     * Similar to readCookieValue() but treats a comma as part of an invalid value.
      */
     private static ByteBuffer readCookieValueRfc6265(ByteBuffer bb) {
         boolean quoted = false;
@@ -250,8 +249,7 @@ public class Cookie {
 
 
     /**
-     * Custom implementation that skips many of the safety checks in
-     * {@link java.nio.ByteBuffer}.
+     * Custom implementation that skips many of the safety checks in {@link java.nio.ByteBuffer}.
      */
     private static class ByteBuffer {
 
diff --git a/java/org/apache/tomcat/util/http/parser/EntityTag.java b/java/org/apache/tomcat/util/http/parser/EntityTag.java
index f863ccca9f..132b480ca3 100644
--- a/java/org/apache/tomcat/util/http/parser/EntityTag.java
+++ b/java/org/apache/tomcat/util/http/parser/EntityTag.java
@@ -22,16 +22,14 @@ import java.io.StringReader;
 public class EntityTag {
 
     /**
-     * Parse the given input as (per RFC 7232) 1#entity-tag.
-     * Compare an ETag header with a resource ETag as described in RFC 7232
-     * section 2.3.2.
+     * Parse the given input as (per RFC 7232) 1#entity-tag. Compare an ETag header with a resource ETag as described in
+     * RFC 7232 section 2.3.2.
      *
      * @param input        The input to parse
      * @param compareWeak  Use weak comparison e.g. match "etag" with W/"etag"
      * @param resourceETag Resource's ETag
      *
-     * @return {@code true} if ETag matches, {@code false} if ETag doesn't match
-     *         or {@code null} if the input is invalid
+     * @return {@code true} if ETag matches, {@code false} if ETag doesn't match or {@code null} if the input is invalid
      *
      * @throws IOException If an I/O occurs during the parsing
      */
@@ -65,7 +63,7 @@ public class EntityTag {
             }
 
             // Note: RFC 2616 allowed quoted string
-            //       RFC 7232 does not allow " in the entity-tag
+            // RFC 7232 does not allow " in the entity-tag
             String value = HttpParser.readQuotedString(input, true);
             if (value == null) {
                 // Not a quoted string so the header is invalid
diff --git a/java/org/apache/tomcat/util/http/parser/Host.java b/java/org/apache/tomcat/util/http/parser/Host.java
index b867adc205..f9cb602bfe 100644
--- a/java/org/apache/tomcat/util/http/parser/Host.java
+++ b/java/org/apache/tomcat/util/http/parser/Host.java
@@ -35,11 +35,9 @@ public class Host {
      *
      * @param mb The host header value
      *
-     * @return The position of ':' that separates the host from the port or -1
-     *         if it is not present
+     * @return The position of ':' that separates the host from the port or -1 if it is not present
      *
-     * @throws IllegalArgumentException If the host header value is not
-     *         specification compliant
+     * @throws IllegalArgumentException If the host header value is not specification compliant
      */
     public static int parse(MessageBytes mb) {
         return parse(new MessageBytesReader(mb));
@@ -51,11 +49,9 @@ public class Host {
      *
      * @param string The host header value
      *
-     * @return The position of ':' that separates the host from the port or -1
-     *         if it is not present
+     * @return The position of ':' that separates the host from the port or -1 if it is not present
      *
-     * @throws IllegalArgumentException If the host header value is not
-     *         specification compliant
+     * @throws IllegalArgumentException If the host header value is not specification compliant
      */
     public static int parse(String string) {
         return parse(new StringReader(string));
diff --git a/java/org/apache/tomcat/util/http/parser/HttpParser.java b/java/org/apache/tomcat/util/http/parser/HttpParser.java
index 6975e3b53f..dbc3f7edb7 100644
--- a/java/org/apache/tomcat/util/http/parser/HttpParser.java
+++ b/java/org/apache/tomcat/util/http/parser/HttpParser.java
@@ -22,17 +22,12 @@ import java.io.Reader;
 import org.apache.tomcat.util.res.StringManager;
 
 /**
- * HTTP header value parser implementation. Parsing HTTP headers as per RFC2616
- * is not always as simple as it first appears. For headers that only use tokens
- * the simple approach will normally be sufficient. However, for the other
- * headers, while simple code meets 99.9% of cases, there are often some edge
- * cases that make things far more complicated.
- *
- * The purpose of this parser is to let the parser worry about the edge cases.
- * It provides tolerant (where safe to do so) parsing of HTTP header values
- * assuming that wrapped header lines have already been unwrapped. (The Tomcat
- * header processing code does the unwrapping.)
- *
+ * HTTP header value parser implementation. Parsing HTTP headers as per RFC2616 is not always as simple as it first
+ * appears. For headers that only use tokens the simple approach will normally be sufficient. However, for the other
+ * headers, while simple code meets 99.9% of cases, there are often some edge cases that make things far more
+ * complicated. The purpose of this parser is to let the parser worry about the edge cases. It provides tolerant (where
+ * safe to do so) parsing of HTTP header values assuming that wrapped header lines have already been unwrapped. (The
+ * Tomcat header processing code does the unwrapping.)
  */
 public class HttpParser {
 
@@ -64,10 +59,9 @@ public class HttpParser {
             }
 
             // Separator
-            if (    i == '(' || i == ')' || i == '<' || i == '>'  || i == '@'  ||
-                    i == ',' || i == ';' || i == ':' || i == '\\' || i == '\"' ||
-                    i == '/' || i == '[' || i == ']' || i == '?'  || i == '='  ||
-                    i == '{' || i == '}' || i == ' ' || i == '\t') {
+            if (i == '(' || i == ')' || i == '<' || i == '>' || i == '@' || i == ',' || i == ';' || i == ':' ||
+                    i == '\\' || i == '\"' || i == '/' || i == '[' || i == ']' || i == '?' || i == '=' || i == '{' ||
+                    i == '}' || i == ' ' || i == '\t') {
                 IS_SEPARATOR[i] = true;
             }
 
@@ -77,7 +71,7 @@ public class HttpParser {
             }
 
             // Hex: 0-9, a-f, A-F
-            if ((i >= '0' && i <='9') || (i >= 'a' && i <= 'f') || (i >= 'A' && i <= 'F')) {
+            if ((i >= '0' && i <= '9') || (i >= 'a' && i <= 'f') || (i >= 'A' && i <= 'F')) {
                 IS_HEX[i] = true;
             }
 
@@ -103,12 +97,12 @@ public class HttpParser {
                 IS_UNRESERVED[i] = true;
             }
 
-            if (i == '!' || i == '$' || i == '&' || i == '\'' || i == '(' || i == ')' || i == '*' ||
-                    i == '+' || i == ',' || i == ';' || i == '=') {
+            if (i == '!' || i == '$' || i == '&' || i == '\'' || i == '(' || i == ')' || i == '*' || i == '+' ||
+                    i == ',' || i == ';' || i == '=') {
                 IS_SUBDELIM[i] = true;
             }
 
-            // userinfo    = *( unreserved / pct-encoded / sub-delims / ":" )
+            // userinfo = *( unreserved / pct-encoded / sub-delims / ":" )
             if (IS_UNRESERVED[i] || i == '%' || IS_SUBDELIM[i] || i == ':') {
                 IS_USERINFO[i] = true;
             }
@@ -116,8 +110,8 @@ public class HttpParser {
             // The characters that are normally not permitted for which the
             // restrictions may be relaxed when used in the path and/or query
             // string
-            if (i == '\"' || i == '<' || i == '>' || i == '[' || i == '\\' || i == ']' ||
-                    i == '^' || i == '`'  || i == '{' || i == '|' || i == '}') {
+            if (i == '\"' || i == '<' || i == '>' || i == '[' || i == '\\' || i == ']' || i == '^' || i == '`' ||
+                    i == '{' || i == '|' || i == '}') {
                 IS_RELAXABLE[i] = true;
             }
         }
@@ -136,16 +130,14 @@ public class HttpParser {
             // Not valid for request target.
             // Combination of multiple rules from RFC7230 and RFC 3986. Must be
             // ASCII, no controls plus a few additional characters excluded
-            if (IS_CONTROL[i] ||
-                    i == ' ' || i == '\"' || i == '#' || i == '<' || i == '>' || i == '\\' ||
-                    i == '^' || i == '`'  || i == '{' || i == '|' || i == '}') {
+            if (IS_CONTROL[i] || i == ' ' || i == '\"' || i == '#' || i == '<' || i == '>' || i == '\\' || i == '^' ||
+                    i == '`' || i == '{' || i == '|' || i == '}') {
                 IS_NOT_REQUEST_TARGET[i] = true;
             }
 
             /*
-             * absolute-path  = 1*( "/" segment )
-             * segment        = *pchar
-             * pchar          = unreserved / pct-encoded / sub-delims / ":" / "@"
+             * absolute-path = 1*( "/" segment ) segment = *pchar pchar = unreserved / pct-encoded / sub-delims / ":" /
+             * "@"
              *
              * Note pchar allows everything userinfo allows plus "@"
              */
@@ -154,7 +146,7 @@ public class HttpParser {
             }
 
             /*
-             * query          = *( pchar / "/" / "?" )
+             * query = *( pchar / "/" / "?" )
              *
              * Note query allows everything absolute-path allows plus "?"
              */
@@ -219,7 +211,7 @@ public class HttpParser {
         }
 
         StringBuilder result = new StringBuilder();
-        for (int i = start ; i < end; i++) {
+        for (int i = start; i < end; i++) {
             char c = input.charAt(i);
             if (input.charAt(i) == '\\') {
                 i++;
@@ -248,17 +240,14 @@ public class HttpParser {
 
 
     /**
-     * Is the provided String a token as per RFC 7230?
-     * <br>
-     * Note: token = 1 * tchar (RFC 7230)
-     * <br>
-     * Since a token requires at least 1 tchar, {@code null} and the empty
-     * string ({@code ""}) are not considered to be valid tokens.
+     * Is the provided String a token as per RFC 7230? <br>
+     * Note: token = 1 * tchar (RFC 7230) <br>
+     * Since a token requires at least 1 tchar, {@code null} and the empty string ({@code ""}) are not considered to be
+     * valid tokens.
      *
      * @param s The string to test
      *
-     * @return {@code true} if the string is a valid token, otherwise
-     *         {@code false}
+     * @return {@code true} if the string is a valid token, otherwise {@code false}
      */
     public static boolean isToken(String s) {
         if (s == null) {
@@ -336,17 +325,14 @@ public class HttpParser {
 
 
     /**
-     * Is the provided String a scheme as per RFC 3986?
-     * <br>
-     * Note: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
-     * <br>
-     * Since a scheme requires at least 1 ALPHA, {@code null} and the empty
-     * string ({@code ""}) are not considered to be valid tokens.
+     * Is the provided String a scheme as per RFC 3986? <br>
+     * Note: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) <br>
+     * Since a scheme requires at least 1 ALPHA, {@code null} and the empty string ({@code ""}) are not considered to be
+     * valid tokens.
      *
      * @param s The string to test
      *
-     * @return {@code true} if the string is a valid scheme, otherwise
-     *         {@code false}
+     * @return {@code true} if the string is a valid scheme, otherwise {@code false}
      */
     public static boolean isScheme(String s) {
         if (s == null) {
@@ -453,9 +439,8 @@ public class HttpParser {
     }
 
     /**
-     * @return  the token if one was found, the empty string if no data was
-     *          available to read or <code>null</code> if data other than a
-     *          token was found
+     * @return the token if one was found, the empty string if no data was available to read or <code>null</code> if
+     *             data other than a token was found
      */
     static String readToken(Reader input) throws IOException {
         StringBuilder result = new StringBuilder();
@@ -481,8 +466,8 @@ public class HttpParser {
     }
 
     /**
-     * @return  the digits if any were found, the empty string if no data was
-     *          found or if data other than digits was found
+     * @return the digits if any were found, the empty string if no data was found or if data other than digits was
+     *             found
      */
     static String readDigits(Reader input) throws IOException {
         StringBuilder result = new StringBuilder();
@@ -504,8 +489,7 @@ public class HttpParser {
     }
 
     /**
-     * @return  the number if digits were found, -1 if no data was found
-     *          or if data other than digits was found
+     * @return the number if digits were found, -1 if no data was found or if data other than digits was found
      */
     static long readLong(Reader input) throws IOException {
         String digits = readDigits(input);
@@ -518,9 +502,8 @@ public class HttpParser {
     }
 
     /**
-     * @return the quoted string if one was found, null if data other than a
-     *         quoted string was found or null if the end of data was reached
-     *         before the quoted string was terminated
+     * @return the quoted string if one was found, null if data other than a quoted string was found or null if the end
+     *             of data was reached before the quoted string was terminated
      */
     static String readQuotedString(Reader input, boolean returnQuoted) throws IOException {
 
@@ -558,8 +541,7 @@ public class HttpParser {
         return result.toString();
     }
 
-    static String readTokenOrQuotedString(Reader input, boolean returnQuoted)
-            throws IOException {
+    static String readTokenOrQuotedString(Reader input, boolean returnQuoted) throws IOException {
 
         // Peek at next character to enable correct method to be called
         int c = skipLws(input);
@@ -572,16 +554,13 @@ public class HttpParser {
     }
 
     /**
-     * Token can be read unambiguously with or without surrounding quotes so
-     * this parsing method for token permits optional surrounding double quotes.
-     * This is not defined in any RFC. It is a special case to handle data from
-     * buggy clients (known buggy clients for DIGEST auth include Microsoft IE 8
-     * &amp; 9, Apple Safari for OSX and iOS) that add quotes to values that
-     * should be tokens.
+     * Token can be read unambiguously with or without surrounding quotes so this parsing method for token permits
+     * optional surrounding double quotes. This is not defined in any RFC. It is a special case to handle data from
+     * buggy clients (known buggy clients for DIGEST auth include Microsoft IE 8 &amp; 9, Apple Safari for OSX and iOS)
+     * that add quotes to values that should be tokens.
      *
-     * @return the token if one was found, null if data other than a token or
-     *         quoted token was found or null if the end of data was reached
-     *         before a quoted token was terminated
+     * @return the token if one was found, null if data other than a token or quoted token was found or null if the end
+     *             of data was reached before a quoted token was terminated
      */
     static String readQuotedToken(Reader input) throws IOException {
 
@@ -626,18 +605,15 @@ public class HttpParser {
     }
 
     /**
-     * LHEX can be read unambiguously with or without surrounding quotes so this
-     * parsing method for LHEX permits optional surrounding double quotes. Some
-     * buggy clients (libwww-perl for DIGEST auth) are known to send quoted LHEX
-     * when the specification requires just LHEX.
-     *
+     * LHEX can be read unambiguously with or without surrounding quotes so this parsing method for LHEX permits
+     * optional surrounding double quotes. Some buggy clients (libwww-perl for DIGEST auth) are known to send quoted
+     * LHEX when the specification requires just LHEX.
      * <p>
-     * LHEX are, literally, lower-case hexadecimal digits. This implementation
-     * allows for upper-case digits as well, converting the returned value to
-     * lower-case.
+     * LHEX are, literally, lower-case hexadecimal digits. This implementation allows for upper-case digits as well,
+     * converting the returned value to lower-case.
      *
-     * @return  the sequence of LHEX (minus any surrounding quotes) if any was
-     *          found, or <code>null</code> if data other LHEX was found
+     * @return the sequence of LHEX (minus any surrounding quotes) if any was found, or <code>null</code> if data other
+     *             LHEX was found
      */
     static String readLhex(Reader input) throws IOException {
 
@@ -762,9 +738,8 @@ public class HttpParser {
 
 
     /**
-     * @return If inIPv6 is false, the position of ':' that separates the host
-     *         from the port or -1 if it is not present. If inIPv6 is true, the
-     *         number of characters read
+     * @return If inIPv6 is false, the position of ':' that separates the host from the port or -1 if it is not present.
+     *             If inIPv6 is true, the number of characters read
      */
     static int readHostIPv4(Reader reader, boolean inIPv6) throws IOException {
         int octet = -1;
@@ -783,8 +758,7 @@ public class HttpParser {
                     octetCount++;
                     octet = -1;
                 } else if (inIPv6 || octet == -1) {
-                    throw new IllegalArgumentException(
-                            sm.getString("http.invalidOctet", Integer.toString(octet)));
+                    throw new IllegalArgumentException(sm.getString("http.invalidOctet", Integer.toString(octet)));
                 } else {
                     // Might not be an IPv4 address. Could be a host / FQDN with
                     // a fully numeric component.
@@ -831,8 +805,8 @@ public class HttpParser {
                 reader.reset();
                 return readHostDomainName(reader);
             } else {
-                throw new IllegalArgumentException(sm.getString(
-                        "http.illegalCharacterIpv4", Character.toString((char) c)));
+                throw new IllegalArgumentException(
+                        sm.getString("http.illegalCharacterIpv4", Character.toString((char) c)));
             }
             pos++;
         } while (true);
@@ -854,8 +828,7 @@ public class HttpParser {
 
 
     /**
-     * @return The position of ':' that separates the host from the port or -1
-     *         if it is not present
+     * @return The position of ':' that separates the host from the port or -1 if it is not present
      */
     static int readHostIPv6(Reader reader) throws IOException {
         // Must start with '['
@@ -887,16 +860,15 @@ public class HttpParser {
                     throw new IllegalArgumentException(sm.getString("http.invalidHextet"));
                 }
             } else if (c == ':') {
-                if (precedingColonsCount >=2 ) {
+                if (precedingColonsCount >= 2) {
                     // ::: is not allowed
                     throw new IllegalArgumentException(sm.getString("http.tooManyColons"));
                 } else {
-                    if(precedingColonsCount == 1) {
+                    if (precedingColonsCount == 1) {
                         // End of ::
-                        if (parsedDoubleColon ) {
+                        if (parsedDoubleColon) {
                             // Only allowed one :: sequence
-                            throw new IllegalArgumentException(
-                                    sm.getString("http.tooManyDoubleColons"));
+                            throw new IllegalArgumentException(sm.getString("http.tooManyDoubleColons"));
                         }
                         parsedDoubleColon = true;
                         // :: represents at least one h16 block
@@ -925,35 +897,31 @@ public class HttpParser {
                     throw new IllegalArgumentException(sm.getString("http.invalidIpv4Location"));
                 }
             } else {
-                throw new IllegalArgumentException(sm.getString(
-                        "http.illegalCharacterIpv6", Character.toString((char) c)));
+                throw new IllegalArgumentException(
+                        sm.getString("http.illegalCharacterIpv6", Character.toString((char) c)));
             }
             pos++;
         } while (true);
 
         if (h16Count > 8) {
-            throw new IllegalArgumentException(
-                    sm.getString("http.tooManyHextets", Integer.toString(h16Count)));
+            throw new IllegalArgumentException(sm.getString("http.tooManyHextets", Integer.toString(h16Count)));
         } else if (h16Count != 8 && !parsedDoubleColon) {
-            throw new IllegalArgumentException(
-                    sm.getString("http.tooFewHextets", Integer.toString(h16Count)));
+            throw new IllegalArgumentException(sm.getString("http.tooFewHextets", Integer.toString(h16Count)));
         }
 
         c = reader.read();
         if (c == ':') {
             return validatePort(reader, pos);
         } else {
-            if(c == -1) {
+            if (c == -1) {
                 return -1;
             }
-            throw new IllegalArgumentException(
-                    sm.getString("http.illegalAfterIpv6", Character.toString((char) c)));
+            throw new IllegalArgumentException(sm.getString("http.illegalAfterIpv6", Character.toString((char) c)));
         }
     }
 
     /**
-     * @return The position of ':' that separates the host from the port or -1
-     *         if it is not present
+     * @return The position of ':' that separates the host from the port or -1 if it is not present
      */
     static int readHostDomainName(Reader reader) throws IOException {
         DomainParseState state = DomainParseState.NEW;
@@ -986,9 +954,9 @@ public class HttpParser {
     }
 
 
-     /**
-     * Skips all characters until EOF or the specified target is found. Normally
-     * used to skip invalid input until the next separator.
+    /**
+     * Skips all characters until EOF or the specified target is found. Normally used to skip invalid input until the
+     * next separator.
      */
     static SkipResult skipUntil(Reader input, int c, char target) throws IOException {
         while (c != -1 && c != target) {
@@ -1016,13 +984,13 @@ public class HttpParser {
 
 
     private enum DomainParseState {
-        NEW(     true, false, false, false, "http.invalidCharacterDomain.atStart"),
-        ALPHA(   true,  true,  true,  true, "http.invalidCharacterDomain.afterLetter"),
-        NUMERIC( true,  true,  true,  true, "http.invalidCharacterDomain.afterNumber"),
-        PERIOD(  true, false, false,  true, "http.invalidCharacterDomain.afterPeriod"),
-        HYPHEN(  true,  true, false, false, "http.invalidCharacterDomain.afterHyphen"),
-        COLON(  false, false, false, false, "http.invalidCharacterDomain.afterColon"),
-        END(    false, false, false, false, "http.invalidCharacterDomain.atEnd");
+        NEW(true, false, false, false, "http.invalidCharacterDomain.atStart"),
+        ALPHA(true, true, true, true, "http.invalidCharacterDomain.afterLetter"),
+        NUMERIC(true, true, true, true, "http.invalidCharacterDomain.afterNumber"),
+        PERIOD(true, false, false, true, "http.invalidCharacterDomain.afterPeriod"),
+        HYPHEN(true, true, false, false, "http.invalidCharacterDomain.afterHyphen"),
+        COLON(false, false, false, false, "http.invalidCharacterDomain.afterColon"),
+        END(false, false, false, false, "http.invalidCharacterDomain.atEnd");
 
         private final boolean mayContinue;
         private final boolean allowsHyphen;
@@ -1030,8 +998,8 @@ public class HttpParser {
         private final boolean allowsEnd;
         private final String errorMsg;
 
-        DomainParseState(boolean mayContinue, boolean allowsHyphen, boolean allowsPeriod,
-                boolean allowsEnd, String errorMsg) {
+        DomainParseState(boolean mayContinue, boolean allowsHyphen, boolean allowsPeriod, boolean allowsEnd,
+                String errorMsg) {
             this.mayContinue = mayContinue;
             this.allowsHyphen = allowsHyphen;
             this.allowsPeriod = allowsPeriod;
@@ -1048,8 +1016,7 @@ public class HttpParser {
                 if (allowsEnd) {
                     return END;
                 } else {
-                    throw new IllegalArgumentException(
-                            sm.getString("http.invalidSegmentEndState", this.name()));
+                    throw new IllegalArgumentException(sm.getString("http.invalidSegmentEndState", this.name()));
                 }
             } else if (HttpParser.isAlpha(c)) {
                 return ALPHA;
@@ -1059,26 +1026,23 @@ public class HttpParser {
                 if (allowsPeriod) {
                     return PERIOD;
                 } else {
-                    throw new IllegalArgumentException(sm.getString(errorMsg,
-                            Character.toString((char) c)));
+                    throw new IllegalArgumentException(sm.getString(errorMsg, Character.toString((char) c)));
                 }
             } else if (c == ':') {
                 if (allowsEnd) {
                     return COLON;
                 } else {
-                    throw new IllegalArgumentException(sm.getString(errorMsg,
-                            Character.toString((char) c)));
+                    throw new IllegalArgumentException(sm.getString(errorMsg, Character.toString((char) c)));
                 }
             } else if (c == '-') {
                 if (allowsHyphen) {
                     return HYPHEN;
                 } else {
-                    throw new IllegalArgumentException(sm.getString(errorMsg,
-                            Character.toString((char) c)));
+                    throw new IllegalArgumentException(sm.getString(errorMsg, Character.toString((char) c)));
                 }
             } else {
-                throw new IllegalArgumentException(sm.getString(
-                        "http.illegalCharacterDomain", Character.toString((char) c)));
+                throw new IllegalArgumentException(
+                        sm.getString("http.illegalCharacterDomain", Character.toString((char) c)));
             }
         }
     }
diff --git a/java/org/apache/tomcat/util/http/parser/MediaType.java b/java/org/apache/tomcat/util/http/parser/MediaType.java
index 52203cf3de..f89f12444b 100644
--- a/java/org/apache/tomcat/util/http/parser/MediaType.java
+++ b/java/org/apache/tomcat/util/http/parser/MediaType.java
@@ -72,7 +72,7 @@ public class MediaType {
                     result.append(type);
                     result.append('/');
                     result.append(subtype);
-                    for (Map.Entry<String, String> entry : parameters.entrySet()) {
+                    for (Map.Entry<String,String> entry : parameters.entrySet()) {
                         String value = entry.getValue();
                         if (value == null || value.length() == 0) {
                             continue;
@@ -98,7 +98,7 @@ public class MediaType {
                     result.append(type);
                     result.append('/');
                     result.append(subtype);
-                    for (Map.Entry<String, String> entry : parameters.entrySet()) {
+                    for (Map.Entry<String,String> entry : parameters.entrySet()) {
                         if (entry.getKey().equalsIgnoreCase("charset")) {
                             continue;
                         }
@@ -119,7 +119,9 @@ public class MediaType {
      * Parses a MediaType value, either from an HTTP header or from an application.
      *
      * @param input a reader over the header text
+     *
      * @return a MediaType parsed from the input, or null if not valid
+     *
      * @throws IOException if there was a problem reading the input
      */
     public static MediaType parseMediaType(StringReader input) throws IOException {
diff --git a/java/org/apache/tomcat/util/http/parser/MediaTypeCache.java b/java/org/apache/tomcat/util/http/parser/MediaTypeCache.java
index 191aef307c..5495d55bec 100644
--- a/java/org/apache/tomcat/util/http/parser/MediaTypeCache.java
+++ b/java/org/apache/tomcat/util/http/parser/MediaTypeCache.java
@@ -33,14 +33,13 @@ public class MediaTypeCache {
     }
 
     /**
-     * Looks in the cache and returns the cached value if one is present. If no
-     * match exists in the cache, a new parser is created, the input parsed and
-     * the results placed in the cache and returned to the user.
+     * Looks in the cache and returns the cached value if one is present. If no match exists in the cache, a new parser
+     * is created, the input parsed and the results placed in the cache and returned to the user.
      *
      * @param input The content-type header value to parse
-     * @return      The results are provided as a two element String array. The
-     *                  first element is the media type less the charset and
-     *                  the second element is the charset
+     *
+     * @return The results are provided as a two element String array. The first element is the media type less the
+     *             charset and the second element is the charset
      */
     public String[] parse(String input) {
         String[] result = cache.get(input);
@@ -56,7 +55,7 @@ public class MediaTypeCache {
             // Ignore - return null
         }
         if (m != null) {
-            result = new String[] {m.toStringNoCharset(), m.getCharset()};
+            result = new String[] { m.toStringNoCharset(), m.getCharset() };
             cache.put(input, result);
         }
 
diff --git a/java/org/apache/tomcat/util/http/parser/TokenList.java b/java/org/apache/tomcat/util/http/parser/TokenList.java
index d805c61841..b2c15fb909 100644
--- a/java/org/apache/tomcat/util/http/parser/TokenList.java
+++ b/java/org/apache/tomcat/util/http/parser/TokenList.java
@@ -31,16 +31,13 @@ public class TokenList {
 
 
     /**
-     * Parses an enumeration of header values of the form 1#token, forcing all
-     * parsed values to lower case.
+     * Parses an enumeration of header values of the form 1#token, forcing all parsed values to lower case.
      *
      * @param inputs     The headers to parse
-     * @param collection The Collection (usually a list or a set) to which the
-     *                       parsed tokens should be added
+     * @param collection The Collection (usually a list or a set) to which the parsed tokens should be added
      *
-     * @return {@code true} if the header values were parsed cleanly and at
-     *         least one token was found, otherwise {@code false} (e.g. if a
-     *         non-token value was encountered)
+     * @return {@code true} if the header values were parsed cleanly and at least one token was found, otherwise
+     *             {@code false} (e.g. if a non-token value was encountered)
      *
      * @throws IOException If an I/O error occurs reading the header
      */
@@ -59,16 +56,13 @@ public class TokenList {
 
 
     /**
-     * Parses a header of the form 1#token, forcing all parsed values to lower
-     * case.
+     * Parses a header of the form 1#token, forcing all parsed values to lower case.
      *
      * @param input      The header to parse
-     * @param collection The Collection (usually a list or a set) to which the
-     *                       parsed tokens should be added
+     * @param collection The Collection (usually a list or a set) to which the parsed tokens should be added
      *
-     * @return {@code true} if the header values were parsed cleanly and at
-     *         least one token was found, otherwise {@code false} (e.g. if a
-     *         non-token value was encountered)
+     * @return {@code true} if the header values were parsed cleanly and at least one token was found, otherwise
+     *             {@code false} (e.g. if a non-token value was encountered)
      *
      * @throws IOException If an I/O error occurs reading the header
      */
diff --git a/java/org/apache/tomcat/util/http/parser/Upgrade.java b/java/org/apache/tomcat/util/http/parser/Upgrade.java
index 5e566a1e52..60c754ab22 100644
--- a/java/org/apache/tomcat/util/http/parser/Upgrade.java
+++ b/java/org/apache/tomcat/util/http/parser/Upgrade.java
@@ -55,7 +55,7 @@ public class Upgrade {
     }
 
 
-    public static List<Upgrade> parse (Enumeration<String> headerValues) {
+    public static List<Upgrade> parse(Enumeration<String> headerValues) {
         try {
             List<Upgrade> result = new ArrayList<>();
 


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