@@ -51,14 +51,53 @@ 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+ try {
62+ foundJava = await this . downloadTool ( javaRelease ) ;
63+ core . info ( `Java ${ foundJava . version } was downloaded` ) ;
64+ } catch ( downloadError : any ) {
65+ core . error (
66+ 'Failed to download Java. Please check your network connection or the provided version.'
67+ ) ;
68+ core . error ( `Error details: ${ downloadError . message } ` ) ;
69+ throw downloadError ;
70+ }
71+ }
72+ } catch ( resolveError : any ) {
73+ if (
74+ resolveError instanceof tc . HTTPError &&
75+ resolveError . httpStatusCode === 403
76+ ) {
77+ core . error (
78+ `Received HTTP 403: Permission denied or restricted access.`
79+ ) ;
80+ } else if (
81+ resolveError instanceof tc . HTTPError &&
82+ resolveError . httpStatusCode === 429
83+ ) {
84+ core . warning (
85+ `Received HTTP 429: Rate limit exceeded. Try again later.`
86+ ) ;
87+ } else {
88+ const message =
89+ resolveError instanceof Error
90+ ? resolveError . message
91+ : JSON . stringify ( resolveError ) ;
92+ core . error (
93+ `Failed to set up Java due to a network issue or timeout: ${ message } `
94+ ) ;
95+ }
96+ if ( resolveError instanceof Error && resolveError . stack ) {
97+ core . debug ( resolveError . stack ) ;
98+ }
99+
100+ throw resolveError ;
62101 }
63102 }
64103
0 commit comments