On Wed, 13 Dec 2023 21:25:19 GMT, Archie Cobbs <aco...@openjdk.org> wrote:
> After filing this PR, I had some second thoughts and added them to the > summary but by then it was too late for the `core-libs-dev` email, so I'll > repeat here in case anyone has some comments: > > > It's worth considering if there is any code out there that is working > > around this problem already by invoking `initCause()` manually. If so, that > > code would start throwing an `IllegalStateException` after this change. > > So a more conservative fix would be to just add another constructor taking > > the same arguments in a different order. But then again that's not much > > better than just saying "always use `initCause()` with the broken > > constructor", i.e., don't change anything. > > Hmm. Yeah, it may make sense to create a CSR to document the behavior change. My take is that the benefit outweighs the potential drawback. I've seen a case a few days ago where the use of this constructor caused the original cause to be lost. Attempting to work around the issue by invoking 'initCause()" won't necessarily be a good solution given other constructors can be used to avoid the issue. ------------- PR Comment: https://git.openjdk.org/jdk/pull/17090#issuecomment-1856445263