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

Reply via email to