Mantis - Squeak
Viewing Issue Advanced Details
7250 Kernel minor always 12-22-08 16:40 12-24-08 14:32
Zulq  
 
normal  
new 3.10  
open  
none    
none  
0007250: Object>>#doesNotUnderstand: incorrectly handles a resumed MessageNotUnderstood
The implementation of #doesNotUnderstand: in Object does not check whether the signalled MessageNotUnderstood has been resumed and return the resumed value. Instead it simply resends the message. As a result, this will loop forever:

" should evaulate to 'abc' "
[Object new foo]
  on: MessageNotUnderstood
  do: [:e | e resume: 'abc']


This may be an issue in versions earlier than 3.10.
 ObjectTest-testDoesNotUnderstand.st [^] (592 bytes) 12-22-08 16:42
 SqueakMNUaLaVW.1.cs [^] (1,872 bytes) 12-22-08 16:43

Notes
(0012875)
Zulq   
12-22-08 16:45   
Created a unit test and uploaded Eliot Miranda's fix.
(0012876)
Zulq   
12-24-08 14:32   
Eliot Miranda wrote:

> 
> On Mon, Dec 22, 2008 at 8:59 AM, Zulq Alam wrote:
>
>   Is it OK to use this fix since it's from a commercial product? Or
>   will someone need to develop a fix who hasn't seen this or the
>   original code.
>

I wrote the fix I posted in response to your post.  It is not identical 
to the VW code, but it is essentially the same solution.  The solution 
is pretty obvious, so I don't think there will be any issues.