mirror of
https://github.com/actions/setup-java.git
synced 2026-06-24 00:30:28 +03:00
- installer: surface a clear error when the GraalVM Community releases listing is not a JSON array, instead of silently treating an error payload (rate limit, auth failure, etc.) as "no releases" which later surfaced as a misleading "version not found" error. - docs: fix the GraalVM Community advanced-usage example to check the installed binary versions (java/native-image --version) rather than running a non-existent HelloWorldApp classpath that fails when copied. - tests: cover the new non-array release listing error path. Rebuilt dist bundle. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -1058,6 +1058,20 @@ describe('GraalVMDistribution', () => {
|
|||||||
'GraalVM Community does not provide early access builds'
|
'GraalVM Community does not provide early access builds'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should surface an error when the releases listing is not an array', async () => {
|
||||||
|
mockHttpClient.getJson.mockResolvedValue({
|
||||||
|
result: {message: 'API rate limit exceeded'},
|
||||||
|
statusCode: 403,
|
||||||
|
headers: {}
|
||||||
|
});
|
||||||
|
|
||||||
|
await expect(
|
||||||
|
(communityDistribution as any).findPackageForDownload('21')
|
||||||
|
).rejects.toThrow(
|
||||||
|
/Unexpected response while listing GraalVM Community releases.*HTTP status code: 403/s
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Vendored
+11
-1
@@ -79300,7 +79300,17 @@ class GraalVMCommunityDistribution extends GraalVMDistribution {
|
|||||||
let releasesUrl = GRAALVM_COMMUNITY_RELEASES_URL;
|
let releasesUrl = GRAALVM_COMMUNITY_RELEASES_URL;
|
||||||
for (let pageIndex = 0; releasesUrl && pageIndex < util_1.MAX_PAGINATION_PAGES; pageIndex++) {
|
for (let pageIndex = 0; releasesUrl && pageIndex < util_1.MAX_PAGINATION_PAGES; pageIndex++) {
|
||||||
const response = yield this.http.getJson(releasesUrl, headers);
|
const response = yield this.http.getJson(releasesUrl, headers);
|
||||||
const releases = Array.isArray(response.result) ? response.result : [];
|
// A successful GitHub releases listing is always a JSON array (possibly
|
||||||
|
// empty). Anything else indicates an unexpected/error payload (rate
|
||||||
|
// limiting, auth failure, etc.) that must be surfaced instead of being
|
||||||
|
// silently treated as "no releases", which would later look like a
|
||||||
|
// misleading "version not found" error.
|
||||||
|
if (!Array.isArray(response.result)) {
|
||||||
|
throw new Error(`Unexpected response while listing GraalVM Community releases from ${releasesUrl} ` +
|
||||||
|
`(HTTP status code: ${response.statusCode}). Expected a JSON array of releases. ` +
|
||||||
|
`Please check if the service is available at ${GRAALVM_COMMUNITY_DOWNLOAD_URL}.`);
|
||||||
|
}
|
||||||
|
const releases = response.result;
|
||||||
if (releases.length === 0) {
|
if (releases.length === 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,8 +186,8 @@ steps:
|
|||||||
distribution: 'graalvm-community'
|
distribution: 'graalvm-community'
|
||||||
java-version: '21'
|
java-version: '21'
|
||||||
- run: |
|
- run: |
|
||||||
java -cp java HelloWorldApp
|
java --version
|
||||||
native-image -cp java HelloWorldApp
|
native-image --version
|
||||||
```
|
```
|
||||||
|
|
||||||
### JetBrains
|
### JetBrains
|
||||||
|
|||||||
@@ -391,7 +391,20 @@ export class GraalVMCommunityDistribution extends GraalVMDistribution {
|
|||||||
headers
|
headers
|
||||||
);
|
);
|
||||||
|
|
||||||
const releases = Array.isArray(response.result) ? response.result : [];
|
// A successful GitHub releases listing is always a JSON array (possibly
|
||||||
|
// empty). Anything else indicates an unexpected/error payload (rate
|
||||||
|
// limiting, auth failure, etc.) that must be surfaced instead of being
|
||||||
|
// silently treated as "no releases", which would later look like a
|
||||||
|
// misleading "version not found" error.
|
||||||
|
if (!Array.isArray(response.result)) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected response while listing GraalVM Community releases from ${releasesUrl} ` +
|
||||||
|
`(HTTP status code: ${response.statusCode}). Expected a JSON array of releases. ` +
|
||||||
|
`Please check if the service is available at ${GRAALVM_COMMUNITY_DOWNLOAD_URL}.`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const releases = response.result;
|
||||||
if (releases.length === 0) {
|
if (releases.length === 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user