Use correct HEAD request when fetching HTTP headers #6063
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
When working with large downloads in build-config.json I noticed that starting up OTP was quite slow and using a lot of bandwidth before the graph build, and therefore download, even started.
I traced it down to a problematic method that was supposed to fetch HTTP headers but instead downloaded the entire file.
The Javadoc clearly states that a HEAD request should be executed but the in the acutal implementation this is not the case:
OpenTripPlanner/src/main/java/org/opentripplanner/framework/io/OtpHttpClient.java
Lines 70 to 73 in dc4cdb8
Unit tests
I could write a test spinning up a HTTP server, but I don't think we want that.