RFR 8241389: URLConnection::getHeaderFields returns result inconsistent with getHeaderField/Key for FileURLConnection, FtpURLConnection
Michael McMahon
michael.x.mcmahon at oracle.com
Fri May 22 15:18:43 UTC 2020
Thanks for the comments Daniel.
Webrev updated at: http://cr.openjdk.java.net/~michaelm/8241389/webrev.2/
- Michael
On 22/05/2020 15:28, Daniel Fuchs wrote:
> Hi Michael,
>
> Two comments:
>
> URLConnection.java:
>
> 1. I don't think getHeaderFields() should return null,
> but an empty map instead.
>
> 122 return null;
>
> should probably return super.getHeaderFields(); instead.
>
> 2. Other methods in this class seem to assume that
> `properties` can be null. I haven't tried to figure out
> whether that's a valid assumption or not but I would
> advise keeping the pattern for consistency:
>
>
> something like:
>
> 116 @Override
> 117 public Map<String, List<String>> getHeaderFields() {
> var headerFields = this.headerFields;
> 118 if (headerFields == null) {
> 119 try {
> 120 getInputStream();
> MessageHeader props = this.properties;
> if (props != null) {
> headerFields = this.headerFields =
> props.getHeaders();
> }
> 121 } catch (IOException e) {
> 122 // OK
> 123 }
> 125 }
> 126 if (headerFields == null) {
> return super.getHeaderFields();
> } else {
> return headerFields;
> }
> 127 }
>
>
> And maybe add a test case to check that getHeaderFields() returns
> an empty map if getInputStream() throws...
>
> best regards,
>
> -- daniel
>
>
>
>
> On 22/05/2020 14:37, Michael McMahon wrote:
>> Hi,
>>
>> Could I get the following fix reviewed please? It is related
>> to the issue reviewed earlier, but requires a code change
>> instead of a spec update.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8241389
>>
>> Webrev: http://cr.openjdk.java.net/~michaelm/8241389/webrev.1/index.html
>>
>> Thanks,
>>
>> Michael.
>>
>
More information about the net-dev
mailing list