RFR: 8294047: HttpResponseInputStream swallows interrupts [v9]

Jaikiran Pai jpai at openjdk.org
Mon Dec 5 07:32:06 UTC 2022


On Fri, 2 Dec 2022 16:17:32 GMT, Darragh Clarke <duke at openjdk.org> wrote:

>> Currently if a `HttpResonseInputStream` gets interrupted while reading it will just swallow the exception and continue,
>> 
>> This PR changes it to close the stream and throw an IOException, I added a test to cover this which just uses two threads to read the stream then interrupt it.
>
> Darragh Clarke has updated the pull request incrementally with one additional commit since the last revision:
> 
>   check thread interrupt status is set

src/java.net.http/share/classes/jdk/internal/net/http/ResponseSubscribers.java line 488:

> 486:                         close();
> 487:                     } catch (IOException ignored) {
> 488:                     }

I don't have specific opinion here and this is more of a question - should we be doing:


} catch (InterruptedException ex) {
    final IOException toThrow = new IOException(ex);
    try {
        close();
    } catch (IOException ignored) {
        toThrow.addSuppressed(ignored);
    }
    Thread.currentThread().interrupt();
    throw toThrow;    
}

i.e. should we be adding any failure to close() as a suppressed exception to the IOException that we throw?

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

PR: https://git.openjdk.org/jdk/pull/11323


More information about the net-dev mailing list