Skip to content

Standard versions of Liberica are not available in sdkman anymore #57

Description

@asm0dey

sdk list java lists the following Java versions:

               |     | 25.0.3.fx    | librca  |            | 25.0.3.fx-librca
               |     | 25.0.2       | librca  |            | 25.0.2-librca

but doesn't list 25.0.3-librca

Other absent versions

  • 8.0.492-librca
  • 11.0.31-librca
  • 17.0.19-librca
  • 21.0.11-librca

What seems to be the problem:

FoojayClient.defaultQueryParams sends latest=available to Disco. BellSoft ships two GA tarballs per slot under identical java_version / release_status / directly_downloadable / javafx_bundled / architecture / archive_type / libc_type / package_type:

  • bellsoft-jdk<ver>-linux-amd64.tar.gz (standard)
  • bellsoft-jdk<ver>-linux-amd64-lite.tar.gz (lite)

Disco's AVAILABLE branch (DiscoService.java:349-401 in the foojayio/discoapi) deduplicates with Pkg.equalsExceptUpdate. That comparator covers distribution, feature/interim version, arch, OS, libc, packageType, releaseStatus, archiveType, ToS, javafxBundled, directlyDownloadable, but not filename, size, or any lite flag.

So the two tarballs are "equal except update", Stream.max(comparing(VersionNumber)) ties, and the survivor is whatever the underlying CopyOnWriteArraySet iterator hands over first. That order is undefined and was apparently stable enough to land on the standard tarball through 8u482, then flipped to lite for 8u492.

Then in this repo, JavaMigration.execute runs Package.libericaFilenameDoesNotContainLite (JavaMigration.java:53), the only result is dropped, .max() returns empty, no version request is built.

Worse — version=8.0.482&latest=available also now returns the 8.0.492 lite tarball. Disco's dedup collapses across update versions too, so even pinning the update version doesn't escape the bug.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions