On Sun, 3 Sep 2023 09:16:24 GMT, Vyom Tewari <[email protected]> wrote:
>> With the current implementation of HttpURLConnection if server rejects the >> “Expect 100-continue” then there will be ‘java.net.ProtocolException’ will >> be thrown from 'expect100Continue()' method. >> >> After the exception thrown, If we call any other method on the same instance >> (ex getHeaderField(), or getHeaderFields()). They will internally call >> getOuputStream() which invokes writeRequests(), which make the actual server >> call. >> >> The code change will sets the existing variable ‘rememberedException’ when >> there is exception and getOutputStream0() will re-throw >> ‘rememberedException’ if the ‘rememberedException’ is not null. >> >> Note: getOutputStream0() also call’s ‘expect100Continue()’ if >> ‘expectContinue’ is true. > > Vyom Tewari has updated the pull request incrementally with one additional > commit since the last revision: > > modified the junit tests names IIRC the `ProtocolException` here is caught higher in the stack - I believe that's what the comment `// responseCode will be returned to caller` means. @DarraghClarke might remember. There is much history here. The fix may appear simple on the surface but I would like to double check that it doesn't break anything. ------------- PR Comment: https://git.openjdk.org/jdk/pull/15483#issuecomment-1705532794
