On Wed, 4 Nov 2020 15:18:01 GMT, Chris Hegarty <che...@openjdk.org> wrote:

>> Hi,
>> 
>> Could someone please review our code for JDK-8252304: 'Seed an 
>> HttpRequest.Builder from an existing HttpRequest'?
>> 
>> This RFR proposes a new factory method for creating a new `HttpRequest` 
>> builder from an existing `HttpRequest`.
>> This method can be used to build a new request equivalent to the given 
>> request, but with different attributes. For instance, it will allow the user 
>> to take an existing request and add or change a particular header, provide a 
>> new `URI`, etc.
>> 
>> 
>> Kind regards,
>> Patrick & Chris
>
> src/java.net.http/share/classes/java/net/http/HttpRequest.java line 344:
> 
>> 342:             throw ex;
>> 343:         } catch (RuntimeException r) {
>> 344:             throw new IllegalArgumentException("Illegal request 
>> parameters", r);
> 
> I'm a little concerned about this. It seems unnecessary, and adds complexity 
> to an otherwise straightforward piece of code. Any accessor of the given 
> request that throws should probably just be allowed to flow out. If needed, 
> we could even mention that in the specification.

The current code side step the issue of having to explain in the spec that any 
kind of `RuntimeException` could be propagated upwards. With this, calling code 
can just try catch `IAE`. It's a little more user-friendly.

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

PR: https://git.openjdk.java.net/jdk/pull/1059

Reply via email to