<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Feb 4, 2018, at 9:59 AM, Daniel Heidinga <<a href="mailto:Daniel_Heidinga@ca.ibm.com" class="">Daniel_Heidinga@ca.ibm.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="socmaildefaultfont" dir="ltr" style="font-family:Arial, Helvetica, sans-serif;font-size:9pt"><div dir="ltr" class="">Dan,</div>
<div dir="ltr" class=""> </div>
<div dir="ltr" class="">Can you clarify this sentence:</div>
<div dir="ltr" class="">----</div>
<div dir="ltr" class=""><span style="font-family: "Default Monospace", "Courier New", Courier, monospace; font-size: small; background-color: rgb(255, 255, 255);" class="">Note that an implementation is free to try to re-resolve X multiple times and keep looping until the stack actually overflows—once you've reached the nested X the first time, all further computation is not observable by users.</span></div>
<div dir="ltr" class="">----</div>
<div dir="ltr" class=""> </div>
<div dir="ltr" class=""><span style="font-family:Arial,Helvetica,sans-serif;" class="">In particular this statement  "<span style="font-size: small; background-color: rgb(255, 255, 255);" class="">not observable by users" has some unpleasant implications.  Does that mean that side-effects that occur during the re-resolution should be undone?That the StackOverflowError's backtrace should only include a single loop of the re-resolution?</span></span></div>
<div dir="ltr" class=""> </div>
<div dir="ltr" class=""><span style="font-family:Arial,Helvetica,sans-serif;" class=""><span style="font-size: small; background-color: rgb(255, 255, 255);" class="">There are a lot of ways that users could observe further computation and if the JVM needs to detect and prevent them from seeing the effects, this actually mandates early detection.  Was that the intention or am I being overly pedantic?</span></span></div></div></div></blockquote><div><br class=""></div></div>The dashes (-----) are to delineate the actual spec. The sentence you're asking about is just me explaining for this mailing list how this rule interacts with our current implementation strategy.<div class=""><br class=""></div><div class="">So, nothing being mandated here.</div><div class=""><br class=""></div><div class="">That said, what side-effects are you concerned about? My claim is that re-resolution in this scenario would not, for example, trigger any class loading or bootstrap invocations.</div><div class=""><br class=""></div><div class="">My use if "observable to users" was not meant to include things that are implementation details anyway, like stack traces, CPU usage, debugger interactions, etc.</div><div class=""><br class=""></div><div class="">—Dan</div></body></html>