Skip to content

Commit e2863ad

Browse files
brunoborgesCopilot
andcommitted
Map Zulu x86 architecture to i686 for Azul Metadata API (#1079)
The Azul Metadata API's `arch=x86` returns both 32-bit (i686) and 64-bit (x64) packages. Because the two variants share identical java_version and distro_version, setup-java cannot distinguish them and may resolve an explicit `architecture: x86` request to a 64-bit JDK (and for Java 21+, where 32-bit is dropped, x86 silently returns x64 instead of failing). The legacy Zulu Discovery API used `arch=x86&hw_bitness=32` to target only 32-bit builds. The Metadata API exposes the equivalent via `arch=i686`, which returns only genuine 32-bit builds with full version parity to the old behavior. Map x86 -> i686 to restore correct 32-bit resolution. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> (cherry picked from commit 8a3e815)
1 parent 78efe03 commit e2863ad

4 files changed

Lines changed: 14 additions & 10 deletions

File tree

__tests__/distributors/zulu-installer.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ describe('getAvailableVersions', () => {
4545
packageType: 'jdk',
4646
checkLatest: false
4747
},
48-
'?os=macos&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=x86&release_status=ga&availability_types=ca&page=1&page_size=100'
48+
'?os=macos&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=i686&release_status=ga&availability_types=ca&page=1&page_size=100'
4949
],
5050
[
5151
{
@@ -54,7 +54,7 @@ describe('getAvailableVersions', () => {
5454
packageType: 'jdk',
5555
checkLatest: false
5656
},
57-
'?os=macos&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=x86&release_status=ea&availability_types=ca&page=1&page_size=100'
57+
'?os=macos&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=i686&release_status=ea&availability_types=ca&page=1&page_size=100'
5858
],
5959
[
6060
{
@@ -183,7 +183,7 @@ describe('getAvailableVersions', () => {
183183
describe('getArchitectureOptions', () => {
184184
it.each([
185185
[{architecture: 'x64'}, 'x64'],
186-
[{architecture: 'x86'}, 'x86'],
186+
[{architecture: 'x86'}, 'i686'],
187187
[{architecture: 'aarch64'}, 'aarch64'],
188188
[{architecture: 'arm64'}, 'aarch64'],
189189
[{architecture: 'arm'}, 'arm']

__tests__/distributors/zulu-linux-installer.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ describe('getAvailableVersions', () => {
4646
packageType: 'jdk',
4747
checkLatest: false
4848
},
49-
'?os=linux_glibc&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=x86&release_status=ga&availability_types=ca&page=1&page_size=100'
49+
'?os=linux_glibc&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=i686&release_status=ga&availability_types=ca&page=1&page_size=100'
5050
],
5151
[
5252
{
@@ -55,7 +55,7 @@ describe('getAvailableVersions', () => {
5555
packageType: 'jdk',
5656
checkLatest: false
5757
},
58-
'?os=linux_glibc&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=x86&release_status=ea&availability_types=ca&page=1&page_size=100'
58+
'?os=linux_glibc&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=i686&release_status=ea&availability_types=ca&page=1&page_size=100'
5959
],
6060
[
6161
{
@@ -186,7 +186,7 @@ describe('getAvailableVersions', () => {
186186
describe('getArchitectureOptions', () => {
187187
it.each([
188188
[{architecture: 'x64'}, 'x64'],
189-
[{architecture: 'x86'}, 'x86'],
189+
[{architecture: 'x86'}, 'i686'],
190190
[{architecture: 'aarch64'}, 'aarch64'],
191191
[{architecture: 'arm64'}, 'aarch64'],
192192
[{architecture: 'arm'}, 'arm']

__tests__/distributors/zulu-windows-installer.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ describe('getAvailableVersions', () => {
4646
packageType: 'jdk',
4747
checkLatest: false
4848
},
49-
'?os=windows&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=x86&release_status=ga&availability_types=ca&page=1&page_size=100'
49+
'?os=windows&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=i686&release_status=ga&availability_types=ca&page=1&page_size=100'
5050
],
5151
[
5252
{
@@ -55,7 +55,7 @@ describe('getAvailableVersions', () => {
5555
packageType: 'jdk',
5656
checkLatest: false
5757
},
58-
'?os=windows&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=x86&release_status=ea&availability_types=ca&page=1&page_size=100'
58+
'?os=windows&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&arch=i686&release_status=ea&availability_types=ca&page=1&page_size=100'
5959
],
6060
[
6161
{
@@ -184,7 +184,7 @@ describe('getAvailableVersions', () => {
184184
describe('getArchitectureOptions', () => {
185185
it.each([
186186
[{architecture: 'x64'}, 'x64'],
187-
[{architecture: 'x86'}, 'x86'],
187+
[{architecture: 'x86'}, 'i686'],
188188
[{architecture: 'aarch64'}, 'aarch64'],
189189
[{architecture: 'arm64'}, 'aarch64'],
190190
[{architecture: 'arm'}, 'arm']

src/distributions/zulu/installer.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,11 @@ export class ZuluDistribution extends JavaBase {
185185
case 'x64':
186186
return 'x64';
187187
case 'x86':
188-
return 'x86';
188+
// The Azul Metadata API's "x86" value returns both 32-bit (i686) and
189+
// 64-bit (x64) packages, which are indistinguishable by version and
190+
// would let a 32-bit request resolve to a 64-bit JDK. Use "i686" to
191+
// target only genuine 32-bit builds, matching the legacy API behavior.
192+
return 'i686';
189193
case 'aarch64':
190194
case 'arm64':
191195
return 'aarch64';

0 commit comments

Comments
 (0)