Skip to content

Make indexes fully reproducible#590

Closed
snazy wants to merge 4 commits intosmallrye:mainfrom
snazy:repro-indexes-2
Closed

Make indexes fully reproducible#590
snazy wants to merge 4 commits intosmallrye:mainfrom
snazy:repro-indexes-2

Conversation

@snazy
Copy link
Contributor

@snazy snazy commented Sep 15, 2025

No description provided.

This change prevents that some wildcard `?` gets unintentionally "changed" to `? extends java.lang.Object` if a new `ClassType` for `java.lang.Object` is constructed (again)
@snazy
Copy link
Contributor Author

snazy commented Sep 15, 2025

Depends on #589

Checking for object-instance-equality for `Type` does sadly not always work, which is addressed by the new specialized `TypeReferenceTable` type.

Similarly, the object-instance-equality checks for `Type[]` have been replaced with the new specialized `TypeListReferenceType`, leveraging interning via `TypeReferenceTable`. This requires an array-copy.
@Ladicek
Copy link
Member

Ladicek commented Sep 15, 2025

I disagree we need to do this. To obtain stable output, the input must be stable. If Gradle users need reproducible Jandex, they should raise a bug with the Gradle plugin(s) to push input files to Jandex in stable order.

@Ladicek Ladicek closed this Sep 15, 2025
@snazy
Copy link
Contributor Author

snazy commented Sep 15, 2025

Hey @Ladicek, could we at least discuss this a bit further?

@Ladicek
Copy link
Member

Ladicek commented Sep 15, 2025

I have no problem with discussing, but I believe I've said everything I could about this. To the best of my knowledge, given stable input, Jandex produces stable output. It is the Gradle plugin(s) that don't give stable input.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants