<div dir="ltr"><div>Right, the ScopedValue is another good example I've forgotten. In that case I am even more inclined to keep the `orElse` as it looks like a repeating pattern across JDK libraries. Consistency is the way to go!</div><div>And maybe even consider having a new interface for the method to make this pattern explicit?..</div><div><br></div><div>I am glad that `orElseSet` is removed, the side-effecting is bad; also in other parts of JDK we already have `computeIfAbsent` for the same idea. I did not hear about it, and yeah, sounds like the source of this confusion.</div><div><br></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, 9 Dec 2025 at 12:05, Maurizio Cimadamore <<a href="mailto:maurizio.cimadamore@oracle.com">maurizio.cimadamore@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On 09/12/2025 11:59, Anatoly Kupriyanov wrote:<br>
> To be honest, I don't really see why this method causes such confusion.<br>
<br>
In part I agree. E.g. when we added this, what we had in mind was just<br>
<br>
<a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/ScopedValue.html#orElse(T)" rel="noreferrer" target="_blank">https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/ScopedValue.html#orElse(T)</a><br>
<br>
E.g. other APIs have `orElse` method that return a user-provided value <br>
if some condition isn't met.<br>
<br>
I believe the problem we're discussing here is likely also related to <br>
the fact that the API used to have a side-effecting `orElseSet`, which <br>
is now removed, and I wonder if, because of that, folks are reading too <br>
much into what orElse does?<br>
<br>
Maurizio<br>
<br>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">WBR, Anatoly.</div>