My application reuses an instance of CloseableHttpClient to retrieve the content from a list of URLs. After upgrading HttpClient from 4.5.x to 5.0.2 (also 5.0 and 5.0.1), it always gets a NoHttpResponseException followed by a response code of 403 for a particular URL in the list. When using 4.5.x, it always gets a 200 or 304 for that particular URL.
The behavior may be different if the order of the URLs in the list is changed.
To illustrate the problem, I have extracted code from my application into the sample Maven project attached. In the JUnit test, testHttpClient4() will get either 200 or 304 for all the URLs. On the other hand, testHttpClient5() always gets 403 for the last URL in the list. In this project, I intentionally added a If-Modified-Since header with the value being current time minus 1 minute so that we should get a 304 from most of the URLs.
Can you investigate if this is really an obscure bug or an undocumented behavior change related to how CloseableHttpClient handles redirects?