Wrap GZIPInputStream with a ConsumingInputStream to drain on close#749
Closed
chingor13 wants to merge 2 commits intogoogleapis:masterfrom
Closed
Wrap GZIPInputStream with a ConsumingInputStream to drain on close#749chingor13 wants to merge 2 commits intogoogleapis:masterfrom
chingor13 wants to merge 2 commits intogoogleapis:masterfrom
Conversation
elharo
reviewed
Jul 29, 2019
| return content; | ||
| } | ||
|
|
||
| static class ConsumingInputStream extends InputStream { |
Contributor
There was a problem hiding this comment.
An outer class would better separate unrelated code. This is complex enough to justify it.
| public void close() throws IOException { | ||
| if (!closed && inputStream != null) { | ||
| try { | ||
| drainInputStream(this); |
Contributor
There was a problem hiding this comment.
Why is it important to drain the input stream and throw away the excess data, instead of simply closing the stream?
| try (ByteArrayOutputStream byteStream = new ByteArrayOutputStream(dataToCompress.length)) { | ||
| GZIPOutputStream zipStream = new GZIPOutputStream((byteStream)); | ||
| zipStream.write(dataToCompress); | ||
| zipStream.close(); |
Contributor
There was a problem hiding this comment.
We should probably also have a case where there's extra data on the stream after the gzipped content, since handling that is the purpose of this PR.
elharo
reviewed
Jul 29, 2019
| } | ||
| } | ||
|
|
||
| static void drainInputStream(final InputStream inputStream) throws IOException { |
Contributor
There was a problem hiding this comment.
I think this method can be private. Also you've reinvented ByteStreams.exhaust from Guava.
codyoss
added a commit
to codyoss/google-http-java-client
that referenced
this pull request
Oct 14, 2019
If a connection is closed and there are some bytes that have not been read that connection can't be reused. Now GZIPInputStream will have all of its bytes read on close automatically to promote connection reuse. Checkpicked from: googleapis#749 Fixes: googleapis#367
codyoss
added a commit
to codyoss/google-http-java-client
that referenced
this pull request
Oct 14, 2019
If a connection is closed and there are some bytes that have not been read that connection can't be reused. Now GZIPInputStream will have all of its bytes read on close automatically to promote connection reuse. Cherry-picked: googleapis#749 Fixes: googleapis#367
clundin25
pushed a commit
to clundin25/google-http-java-client
that referenced
this pull request
Aug 11, 2022
* fix: timing of stale token refreshes on ComputeEngine ComputeEngine metadata server has its own token caching mechanism that will return a cached token until the last 5 minutes of its expiration. This has a negative interaction with stale token refreshes because stale token refresh kicks in T-6mins until T-5mins. This will cause every stale refresh to return the same stale token. This PR updates the timing for ComputeEngineCredentials to start a stale refresh at T-4mins and consider the token expired at T-3 mins. The implementation is a bit noisy because it includes a change OAuth2Credentials to make the thresholds configureable and now that we targeting java8, I migrated to using java8 time data types * fmt * fix test * fix test again * remove debug code * comments
clundin25
pushed a commit
to clundin25/google-http-java-client
that referenced
this pull request
Aug 11, 2022
🤖 I have created a release \*beep\* \*boop\* --- ## [1.2.0](https://www.github.com/googleapis/google-auth-library-java/compare/v1.1.0...v1.2.0) (2021-09-30) ### Features * add support for Workforce Pools ([googleapis#729](https://www.github.com/googleapis/google-auth-library-java/issues/729)) ([5f3fed7](https://www.github.com/googleapis/google-auth-library-java/commit/5f3fed79e22f3c2d585c5b03c01791b0f8109929)) ### Bug Fixes * allow empty workforce_pool_user_project ([googleapis#752](https://www.github.com/googleapis/google-auth-library-java/issues/752)) ([e1cbce1](https://www.github.com/googleapis/google-auth-library-java/commit/e1cbce1a5cb269c6613bc6d40f06145bd45099c0)) * timing of stale token refreshes on ComputeEngine ([googleapis#749](https://www.github.com/googleapis/google-auth-library-java/issues/749)) ([c813d55](https://www.github.com/googleapis/google-auth-library-java/commit/c813d55a78053ecbec1a9640e6c9814da87319eb)) * workforce audience ([googleapis#741](https://www.github.com/googleapis/google-auth-library-java/issues/741)) ([a08cacc](https://www.github.com/googleapis/google-auth-library-java/commit/a08cacc7990b9058c8f1af3f9d8d816119562cc4)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #367