| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a5e2549a-0d89-4c8f-b7f3-411ad21c8a06
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a5e2549a-0d89-4c8f-b7f3-411ad21c8a06
There was a problem hiding this comment.
This PR consolidates JDK metadata retry behavior into a single, bounded retrying HTTP client to avoid multiplying requests and repeating version resolution, while keeping archive downloads handled by @actions/tool-cache’s download logic.
Changes:
| File | Description |
|---|---|
| src/retrying-http-client.ts | Introduces a bounded retrying HTTP client (backoff/jitter + Retry-After) for metadata requests. |
| src/distributions/base-installer.ts | Switches installers to the shared retrying client and removes the outer retry loop; centralizes error logging. |
| dist/setup/index.js | Bundled output updated to include the new retry client and installer changes. |
| .github/workflows/e2e-versions.yml | Extends E2E matrix coverage to include oracle-openjdk across OSes. |
| tests/retrying-http-client.test.ts | Adds unit tests for retry backoff/jitter, Retry-After parsing/capping, and retry classification. |
| tests/distributors/jetbrains-installer.test.ts | Adds deterministic 429 + Retry-After retry test for JetBrains metadata calls. |
| tests/distributors/distribution-factory.test.ts | Verifies each distribution uses the shared RetryingHttpClient. |
| tests/distributors/base-installer.test.ts | Ensures version resolution isn’t repeated when downloadTool fails. |
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Description:
JavaBase previously combined automatic @actions/http-client retries with a broad installer-level retry loop, multiplying metadata requests and repeating successful version resolution when downloads failed.
This change introduces one bounded retrying client for metadata requests with exponential backoff, jitter, Retry-After support, and the existing HTTP/network retry classifications. It removes the installer retry loop and private console timer access. Archive transfers continue to use @actions/tool-cache.downloadTool, preserving toolkit streaming, proxy, cleanup, and download retry behavior without wrapping it in another setup-java retry.
The distribution coverage verifies every remote distribution uses the shared client, adds a deterministic JetBrains 429 test, and extends the live E2E matrix to Oracle OpenJDK. The dispatched matrix completed all 368 jobs successfully, including 30 JetBrains scenarios.
Related issue:
Fixes: #1155
Check list: