<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        This one needs an extra merge commit. :-)<div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class='history_container' type='cite' style='border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;'>
                        <p style='color: #AAAAAA; margin-top: 10px;'>Am 06.05.2022 15:24:58 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style='font-family:Arial,Helvetica,sans-serif'>Nicolas Cellier uploaded a new version of Kernel to project The Trunk:<br>http://source.squeak.org/trunk/Kernel-jar.1446.mcz<br><br>==================== Summary ====================<br><br>Name: Kernel-jar.1446<br>Author: jar<br>Time: 6 February 2022, 11:37:44.367834 am<br>UUID: 8598d7f7-f9c4-b648-b9da-378d98b37ae2<br>Ancestors: Kernel-mt.1443<br><br>fix Exception >> signal behavior when signaling an already signaled exception; see discussion in http://lists.squeakfoundation.org/pipermail/squeak-dev/2022-February/218861.html<br><br>Originally there was no check if the receiver has already been signaled which was a bug (subsequent #signal sends to an already signaled exception lead to weird errors); last year I suggested making such a send equivalent to sending #outer but that's a poor fix which is not even compliant with ANSI; this latest approach is both compliant and makes the following example work and pick up the ZeroDivide handler as one might expect:<br><br>[1/0] on: Error do: [:ex | <br>       [ex signal] on: ZeroDivide do: [Transcript show: #ZeroDivide]<br> ]<br><br>=============== Diff against Kernel-mt.1443 ===============<br><br>Item was changed:<br>  ----- Method: Exception>>signal (in category 'signaling') -----<br>  signal<br>+     "Ask ContextHandlers in the sender chain to handle this signal.  The default is to execute and return my defaultAction.<br>+         Sending #signal to an already signaled exception generates a new exception of the same type with the same messageText"<br>-  "Ask ContextHandlers in the sender chain to handle this signal.  The default is to execute and return my defaultAction."<br>  <br>+       signalContext ifNotNil: [^self class signal: messageText]. <br>-  signalContext ifNotNil: [^self outer]. "re-signalling an already signalled exception is equivalent to sending #outer"<br>       signalContext := thisContext contextTag.<br>      ^(thisContext nextHandlerContextForSignal: self) handleSignal: self!<br><br><br></div></blockquote>
                                        </div></body>