RFR: 8347167: Implementation in com.sun.net.httpserver.Headers.normalize() can be improved

Andrey Turbanov aturbanov at openjdk.org
Mon Sep 22 18:24:08 UTC 2025


On Mon, 15 Sep 2025 02:50:27 GMT, Josiah Noel <duke at openjdk.org> wrote:

> Following the direction outlined in the net-dev discussion, I've updated the `com.sun.net.httpserver.Headers.normalize()` method to no longer allocate a superfluous char array when the header is already normalized.

src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java line 126:

> 124:         if (c == '\r' || c == '\n')
> 125:             throw new IllegalArgumentException("illegal character in key");
> 126:         if(c >= 'a' && c <= 'z') {

Suggestion:

        if (c >= 'a' && c <= 'z') {

src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java line 130:

> 128:         } else {
> 129:             i++;
> 130:             for(; i < len; i++) {

Suggestion:

            for (; i < len; i++) {

src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java line 139:

> 137:             }
> 138:         }
> 139:         if(i == len) return key;

Suggestion:

        if (i == len) return key;

src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java line 142:

> 140: 
> 141:         char[] b = key.toCharArray();
> 142:         if(i == 0) {

Suggestion:

        if (i == 0) {

src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java line 148:

> 146:         for (; i < len; i++) {
> 147:             c = b[i];
> 148:             if(c >= 'A' && c <= 'Z') {

Suggestion:

            if (c >= 'A' && c <= 'Z') {

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27276#discussion_r2355652408
PR Review Comment: https://git.openjdk.org/jdk/pull/27276#discussion_r2355653084
PR Review Comment: https://git.openjdk.org/jdk/pull/27276#discussion_r2355653399
PR Review Comment: https://git.openjdk.org/jdk/pull/27276#discussion_r2355653593
PR Review Comment: https://git.openjdk.org/jdk/pull/27276#discussion_r2355653920


More information about the net-dev mailing list