RFR: 8353013: java.net.URI.create(String) may have low performance to scan the host/domain name from URI string when the hostname starts with number [v3]
duke
duke at openjdk.org
Wed Apr 16 10:47:43 UTC 2025
On Wed, 16 Apr 2025 09:46:59 GMT, Rohitash Kumar <duke at openjdk.org> wrote:
>> `scanByte` throws `NumberFormatException` for URIs that start with numbers, e.g., https://11111111.x.y/
>> The current flow is `parseIPv4Address` → `scanIPv4Address` → `scanByte`. `parseIPv4Address` uses `NumberFormatException` for control flow, so it captures the exception, ignores it, and returns -1. This has been reported by AWS customer to cause low performance. Details: [JDK-8353013](https://bugs.openjdk.org/browse/JDK-8353013) & https://github.com/aws/aws-sdk-java-v2/issues/5933
>>
>> This PR avoids NumberFormatException by skipping calls to `Integer.parseInt` if the number of digits in the octet is > 3.
>>
>>
>> I ran following tests.
>>
>> make test-tier1
>> make test-tier2
>> make test TEST=jdk/java/net
>
> Rohitash Kumar has updated the pull request incrementally with one additional commit since the last revision:
>
> improve jmh benchmark
@rk-kmr
Your change (at version 0164bcab506ef529403f835ab078af06b66cdf38) is now ready to be sponsored by a Committer.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/24295#issuecomment-2809185269
More information about the net-dev
mailing list