On 4 oct. 06, at 09:31, Roel Wuyts wrote:
Hello Chris, hello Stephane
Two things for Chris, one thing for Stephane (or for Chris):
1- I am investigating your fix, and it looks ok. One question though: did you have a deliberate reason to add a new method SystemDictionary>>#renameClass:from: instead of updating the method SystemDictionary>>#renameClass:as: ? (probably the method -but not your fix of course- got renamed)
2- I am a bit worried about your remark about the obsolete class and the bad event handler, but I cannot reproduce it. It would interest me to have a look at it, since this is indeed something which should not occur. Do you still have an image with this problem ? A way to reproduce it (I tried running tests several times in different orders but to no avail).
3- Stephane, yesterday I opened the 7061 image, opened the TestRunner, did select all and ran all tests : they all passed. Yet when I ran the test manually, as mentioned in Chris' mail, it indeed fails. Does this mean that not all tests are included in this TestRunner (intentionally, as a feature), or is there some problem with the TestRunner ?
this is strange and I do not know.
Kind Regards,
Roel
On 04 Oct 2006, at 05:30, Chris Muller wrote:
Thanks Stef for the quick response.
Roel, how can I help? The test that is failing is ClassRenameFixTest. The test demonstrates a problem with the SystemChangeNotifier, that it signals the rename event while the system in in an inconsistent state. For a detailed explanation:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2004-
June/079418.html
If you run the test in a stock 3.9-7061 image
ClassRenameFixTest run: #testRenameClassUsingClass.
it fails because the actual fix code did not get included in the image.
All you need to do is file-in the latest file associated with the Mantis bug, ClassRenameFix6#2004.3.cs.gz.
This fixes the bug, except... (...whew! after 2 hours of investigation...) - for the test case to pass, a "bad event handler" (apparently) from a prior run of this test must be removed from the SystemChangeNotifier in the 3.9-7061 image (it references an Obsolete class, not good). The #tearDown removes it so I don't know how this got stuck in there.
It doesn't really matter, the easiest way to get rid of it:
SystemChangeNotifier uniqueInstance noMoreNotificationsFor: (((((SystemChangeNotifier uniqueInstance instVarNamed:
'eventSource') instVarNamed: 'actionMap') at: #classRenamedEvent:) at: 8) at: 1)
Now the test passes, demonstrating that the rename event is now called when the system is consistent.
To summarize:
- file in ClassRenameFix6#2004.3.cs.gz from the Mantis bug
(http://bugs.impara.de/view.php?id=1621) 2) execute the above SystemChangeNotifier noMoreNotificationsFor... 3) see that the test passes
I have been interested in getting this fix into standard Squeak since June, 2004. It will allow Magma users to develop code, including now renaming (persistent) classes, while connected to the database.
If there is anything else I can do to help, please let me know.
Thanks..
----- Original Message ---- From: stephane ducasse stephane.ducasse@gmail.com To: Chris Muller chris@funkyobjects.org Cc: squeak dev squeak-dev@lists.squeakfoundation.org Sent: Tuesday, October 3, 2006 1:48:28 PM Subject: Re: Collecting actions for RC2
hi chris
here is what roel told me about your mail:
"Stef, I am trying to understand the problem by looking at the URL mentioned in the mail. I downloaded the RC1 image for 3.9 (7061), and ran all the tests, but they seem to work (and there is a test for the class renames). So I do not really know what I can do ?
On 03 Oct 2006, at 14:38, stephane ducasse wrote: "
On 3 oct. 06, at 04:01, Chris Muller wrote:
Yeeooww! Somehow this slipped through the cracks.
http://bugs.impara.de/view.php?id=1621
Somehow only part of the above code, the new SUnit test, got included in 7061. The test fails because the actual fix code did not get included. Would you mind file in the all the code attached to the above and include this in the next RC?
Thanks..
squeak-dev@lists.squeakfoundation.org