RFR: 8355065: ConcurrentModificationException in RichDiagnosticFormatter
Chen Liang
liach at openjdk.org
Sun Apr 20 01:56:50 UTC 2025
On Sat, 19 Apr 2025 18:59:57 GMT, Liam Miller-Cushon <cushon at openjdk.org> wrote:
> Hi, please consider this fix for [JDK-8355065](https://bugs.openjdk.org/browse/JDK-8355065). RichDiagnosticFormatter is comparing type variables by their `toString` representation, and in this example the comparison fails due to type annotations. Replacing a call to `stripMetadataIfNeeded` with `stripMetadata` allows the comparison to succeed, and is consistent with the approach used in other parts of RichDiagnosticFormatter (e.g. for [the fix for JDK-8144580](https://github.com/openjdk/jdk/commit/570883e4dc5f769e17b3fcd8f2bbeb369dfe3a5d)).
Seems `stripMetadataIfNeeded` is only used for types obtained from StructuralTypeMapping or TypeProjection/TypeArgumentProjection. Also not only the base usage, but the other usage of stripping metadata in the base diagnostic formatter uses stripMetadata, so this does make sense.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/24769#issuecomment-2816943479
More information about the compiler-dev
mailing list