RFR: 8285521: Minor improvements in java.net.URI
    Сергей Цыпанов 
    duke at openjdk.java.net
       
    Thu May 19 16:31:42 UTC 2022
    
    
  
On Thu, 19 May 2022 12:19:25 GMT, ExE Boss <duke at openjdk.java.net> wrote:
>> - use `String.equalsIgnoreCase()` instead of hand-written code relying on `String.charAt()`
>> - use `String.compareToIgnoreCase()` instead of hand-written code relying on `String.charAt()`
>> - drop branches that are never executed
>> - drop unused argument from `URI.resolvePath()`
>> - simplify String-related operations
>
> The `String.equalsIgnoreCase(…)` and `String.compareToIgnoreCase(…)` changes are incorrect, as the `String.*IgnoreCase(…)` methods compare all **Unicode** code points case‑insensitively using **Unicode** rules for the current or specified locale, whereas the **URI** specification does case‑insensitive comparison only for characters in the **US‑ASCII** range [[RFC3986]].
> 
> --------------------------------------------------------------------------------
> 
> https://github.com/openjdk/jdk/blob/408a3a8e29006798071cd6f185e415bc2bc62282/src/java.base/share/classes/java/net/URI.java#L1825-L1830 https://github.com/openjdk/jdk/blob/408a3a8e29006798071cd6f185e415bc2bc62282/src/java.base/share/classes/java/net/URI.java#L1832-L1844
> 
> [RFC3986]: https://datatracker.ietf.org/doc/html/rfc3986
@ExE-Boss 
> String.*IgnoreCase(…) methods compare all Unicode code points case‑insensitively using Unicode rules for the current or specified locale, whereas the URI specification does case‑insensitive comparison only for characters in the US‑ASCII range
Aren't all the items of US-ASCII range belong to Unicode regardless of locale?
-------------
PR: https://git.openjdk.java.net/jdk/pull/8397
    
    
More information about the net-dev
mailing list