Skip to content

Conversation

@graalvmbot
Copy link
Collaborator

Unresolved types in the signature of a ResolvedJavaMethod are converted to java.lang.Object in the signature of the corresponding AnalysisMethod. Because of this, it's possible to have two AnalysisMethod with the same method descriptor.

This was causing a transient where a graph was persisted two times for the same method descriptor. The persistAnalysisParsedGraph method was only persisting if no graph was already persisted, which was the cause of the transient element of this issue, since those two methods with the same descriptor could access this concurrently.

To avoid similar issues in the future, this method does not check anymore for a previously persisted graph and should only be called once.

The check for duplicate method descriptors was also fixed as it was broken.

Finally, the entries with a null value in StringConcatFactory$InlineHiddenClassStrategy.CACHE are now properly filtered as well, which was causing another transient.

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Aug 25, 2025
@graalvmbot graalvmbot merged commit 3560a55 into master Aug 25, 2025
13 checks passed
@graalvmbot graalvmbot deleted the scoppey/GR-68593 branch August 25, 2025 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants