tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Konstantin Kolinko <knst.koli...@gmail.com>
Subject Re: svn commit: r1599739 - /tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
Date Tue, 03 Jun 2014 21:48:48 GMT
2014-06-03 22:37 GMT+04:00  <markt@apache.org>:
> Author: markt
> Date: Tue Jun  3 18:37:33 2014
> New Revision: 1599739
>
> URL: http://svn.apache.org/r1599739
> Log:
> Tiny bit of de-duplication.
> Add reference to RFC2616 for case insensitivity of transfer encoding
> names.
>
> Modified:
>     tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
>
> Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1599739&r1=1599738&r2=1599739&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original)
> +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Tue Jun 
3 18:37:33 2014
> @@ -677,8 +677,12 @@ public abstract class AbstractHttp11Proc
>       * Add an input filter to the current request. If the encoding is not
>       * supported, a 501 response will be returned to the client.
>       */
> -    private void addInputFilter(InputFilter[] inputFilters,
> -                                     String encodingName) {
> +    private void addInputFilter(InputFilter[] inputFilters, String encodingName) {
> +
> +        // Trim provided encoding name and convert to lower case since transfer
> +        // encoding names are case insensitive. (RFC2616, section 3.6)
> +        encodingName = encodingName.trim().toLowerCase(Locale.ENGLISH);
> +
>          if (encodingName.equals("identity")) {
>              // Skip
>          } else if (encodingName.equals("chunked")) {


Good.

Possible idea for an additional improvement:
a few lines below in this method there is

> for (int i = pluggableFilterIndex; i < inputFilters.length; i++) {
> if (inputFilters[i].getEncodingName().toString().equals(encodingName)) {
>    getInputBuffer().addActiveFilter(inputFilters[i]);
>    return;
> }
> }

There is no need for getEncodingName() to return a ByteChunk. It can
return a String instead.  The above is the only place where it is
used.
I think the byte chunk was used there for sake of calling its
ByteChunk.equalsIgnoreCase(String) method.

Such a change means changing InputFilter interface.

Best regards,
Konstantin Kolinko.

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


Mime
View raw message