diff --git a/dist/setup/index.js b/dist/setup/index.js index 08107f09..391e4d6a 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -128793,15 +128793,34 @@ class JavaBase { } else { core.info('Trying to resolve the latest version from remote'); - const javaRelease = yield this.findPackageForDownload(this.version); - core.info(`Resolved latest version as ${javaRelease.version}`); - if ((foundJava === null || foundJava === void 0 ? void 0 : foundJava.version) === javaRelease.version) { - core.info(`Resolved Java ${foundJava.version} from tool-cache`); + try { + const javaRelease = yield this.findPackageForDownload(this.version); + core.info(`Resolved latest version as ${javaRelease.version}`); + if ((foundJava === null || foundJava === void 0 ? void 0 : foundJava.version) === javaRelease.version) { + core.info(`Resolved Java ${foundJava.version} from tool-cache`); + } + else { + core.info('Trying to download...'); + foundJava = yield this.downloadTool(javaRelease); + core.info(`Java ${foundJava.version} was downloaded`); + } } - else { - core.info('Trying to download...'); - foundJava = yield this.downloadTool(javaRelease); - core.info(`Java ${foundJava.version} was downloaded`); + catch (error) { + if (error instanceof tc.HTTPError && error.httpStatusCode === 403) { + core.error(`Received HTTP 403: Permission denied or restricted access.`); + } + else if (error instanceof tc.HTTPError && + error.httpStatusCode === 429) { + core.warning(`Received HTTP 429: Rate limit exceeded. Try again later.`); + } + else { + const message = error instanceof Error ? error.message : JSON.stringify(error); + core.error(`Failed to set up Java due to a network issue or timeout: ${message}`); + } + if (error instanceof Error && error.stack) { + core.debug(error.stack); + } + throw error; } } // JDK folder may contain postfix "Contents/Home" on macOS diff --git a/src/distributions/base-installer.ts b/src/distributions/base-installer.ts index 258ac9f4..4385c9bc 100644 --- a/src/distributions/base-installer.ts +++ b/src/distributions/base-installer.ts @@ -51,14 +51,40 @@ export abstract class JavaBase { core.info(`Resolved Java ${foundJava.version} from tool-cache`); } else { core.info('Trying to resolve the latest version from remote'); - const javaRelease = await this.findPackageForDownload(this.version); - core.info(`Resolved latest version as ${javaRelease.version}`); - if (foundJava?.version === javaRelease.version) { - core.info(`Resolved Java ${foundJava.version} from tool-cache`); - } else { - core.info('Trying to download...'); - foundJava = await this.downloadTool(javaRelease); - core.info(`Java ${foundJava.version} was downloaded`); + try { + const javaRelease = await this.findPackageForDownload(this.version); + core.info(`Resolved latest version as ${javaRelease.version}`); + if (foundJava?.version === javaRelease.version) { + core.info(`Resolved Java ${foundJava.version} from tool-cache`); + } else { + core.info('Trying to download...'); + foundJava = await this.downloadTool(javaRelease); + core.info(`Java ${foundJava.version} was downloaded`); + } + } catch (error: any) { + if (error instanceof tc.HTTPError && error.httpStatusCode === 403) { + core.error( + `Received HTTP 403: Permission denied or restricted access.` + ); + } else if ( + error instanceof tc.HTTPError && + error.httpStatusCode === 429 + ) { + core.warning( + `Received HTTP 429: Rate limit exceeded. Try again later.` + ); + } else { + const message = + error instanceof Error ? error.message : JSON.stringify(error); + core.error( + `Failed to set up Java due to a network issue or timeout: ${message}` + ); + } + if (error instanceof Error && error.stack) { + core.debug(error.stack); + } + + throw error; } }