Skip to content

Commit ebb356c

Browse files
gowridurgad“gowridurgad”
andauthored
Improve Error Handling for Setup-Java Action to Help Debug Intermittent Failures (#848)
* error-handling * Logic update --------- Co-authored-by: “gowridurgad” <“hgowridurgad@github.com>
1 parent f4f1212 commit ebb356c

File tree

2 files changed

+61
-16
lines changed

2 files changed

+61
-16
lines changed

dist/setup/index.js

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -128793,15 +128793,38 @@ class JavaBase {
128793128793
}
128794128794
else {
128795128795
core.info('Trying to resolve the latest version from remote');
128796-
const javaRelease = yield this.findPackageForDownload(this.version);
128797-
core.info(`Resolved latest version as ${javaRelease.version}`);
128798-
if ((foundJava === null || foundJava === void 0 ? void 0 : foundJava.version) === javaRelease.version) {
128799-
core.info(`Resolved Java ${foundJava.version} from tool-cache`);
128796+
try {
128797+
const javaRelease = yield this.findPackageForDownload(this.version);
128798+
core.info(`Resolved latest version as ${javaRelease.version}`);
128799+
if ((foundJava === null || foundJava === void 0 ? void 0 : foundJava.version) === javaRelease.version) {
128800+
core.info(`Resolved Java ${foundJava.version} from tool-cache`);
128801+
}
128802+
else {
128803+
core.info('Trying to download...');
128804+
foundJava = yield this.downloadTool(javaRelease);
128805+
core.info(`Java ${foundJava.version} was downloaded`);
128806+
}
128800128807
}
128801-
else {
128802-
core.info('Trying to download...');
128803-
foundJava = yield this.downloadTool(javaRelease);
128804-
core.info(`Java ${foundJava.version} was downloaded`);
128808+
catch (error) {
128809+
if (error instanceof tc.HTTPError) {
128810+
if (error.httpStatusCode === 403) {
128811+
core.error('HTTP 403: Permission denied or access restricted.');
128812+
}
128813+
else if (error.httpStatusCode === 429) {
128814+
core.warning('HTTP 429: Rate limit exceeded. Please retry later.');
128815+
}
128816+
else {
128817+
core.error(`HTTP ${error.httpStatusCode}: ${error.message}`);
128818+
}
128819+
}
128820+
else {
128821+
const message = error instanceof Error ? error.message : JSON.stringify(error);
128822+
core.error(`Java setup failed due to network issue or timeout: ${message}`);
128823+
}
128824+
if (error instanceof Error && error.stack) {
128825+
core.debug(error.stack);
128826+
}
128827+
throw error;
128805128828
}
128806128829
}
128807128830
// JDK folder may contain postfix "Contents/Home" on macOS

src/distributions/base-installer.ts

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,36 @@ export abstract class JavaBase {
5151
core.info(`Resolved Java ${foundJava.version} from tool-cache`);
5252
} else {
5353
core.info('Trying to resolve the latest version from remote');
54-
const javaRelease = await this.findPackageForDownload(this.version);
55-
core.info(`Resolved latest version as ${javaRelease.version}`);
56-
if (foundJava?.version === javaRelease.version) {
57-
core.info(`Resolved Java ${foundJava.version} from tool-cache`);
58-
} else {
59-
core.info('Trying to download...');
60-
foundJava = await this.downloadTool(javaRelease);
61-
core.info(`Java ${foundJava.version} was downloaded`);
54+
try {
55+
const javaRelease = await this.findPackageForDownload(this.version);
56+
core.info(`Resolved latest version as ${javaRelease.version}`);
57+
if (foundJava?.version === javaRelease.version) {
58+
core.info(`Resolved Java ${foundJava.version} from tool-cache`);
59+
} else {
60+
core.info('Trying to download...');
61+
foundJava = await this.downloadTool(javaRelease);
62+
core.info(`Java ${foundJava.version} was downloaded`);
63+
}
64+
} catch (error: any) {
65+
if (error instanceof tc.HTTPError) {
66+
if (error.httpStatusCode === 403) {
67+
core.error('HTTP 403: Permission denied or access restricted.');
68+
} else if (error.httpStatusCode === 429) {
69+
core.warning('HTTP 429: Rate limit exceeded. Please retry later.');
70+
} else {
71+
core.error(`HTTP ${error.httpStatusCode}: ${error.message}`);
72+
}
73+
} else {
74+
const message =
75+
error instanceof Error ? error.message : JSON.stringify(error);
76+
core.error(
77+
`Java setup failed due to network issue or timeout: ${message}`
78+
);
79+
}
80+
if (error instanceof Error && error.stack) {
81+
core.debug(error.stack);
82+
}
83+
throw error;
6284
}
6385
}
6486

0 commit comments

Comments
 (0)