Mantis - Squeak
Viewing Issue Advanced Details
6839 Kernel major always 01-07-08 10:16 01-11-08 00:37
kwl  
wiz  
normal  
feedback 3.10  
reopened  
none    
none 3.10  
0006839: #comeFullyUpOnReload: not sent to MorphExtension's otherProperties (anIdentityDictionary)
Situation: using a fresh playfield for creating UML morphs with connectors (using the Connector2 package), then:

o save the playfield to disk, quit without snapshot.
o load the .pr file, it will reload as Project.
o change the Project and save again to disk, again quit without snapshot.
o load the Project and explore the World

The NCUMLDiagramMorph's MorphExtension instance variable otherProperties, is not rehashed.

Quit without snapshot and before loading the Project again, put a break in Set>>#comeFullyUpOnReload: (which is responsible for the missing #rehash).

The method will not break for IdentityDictionaries (but it breaks for 2-3 other "normal" Dictionaries).

I've attached a .pr file which exhibits the above.
This report seems to describe a situation similiar to

- http://bugs.squeak.org/view.php?id=6721 [^]
duplicate of 0006721feedback  In 7149 Identity dictionarys sometimes can't find their keys 
 scanner-M6839.pr [^] (117,165 bytes) 01-07-08 10:19

Notes
(0011645)
wiz   
01-09-08 04:00   
According to Edgar:


http://lists.squeakfoundation.org/pipermail/v3dot10/2008-January/001009.html [^]

This problem occured in a prefix image and is due to the changes of == to = in project reading code.
(0011646)
wiz   
01-09-08 04:03   
fix in 3.10.1 branch.
(0011647)
kwl   
01-09-08 05:39   
Please supply a test demonstrating that indeed #comeFullyUpOnReload: is sent to instances of IdentityDictionary before you close this issue.
(0011675)
wiz   
01-11-08 00:37   
Hi Klaus,

I agree your test is desirable. Though I think in this case the problem was that #comeFullyUpOnReload: was broken by the change.

I resolved this report because it is essentially a duplicate of 6721.

I included tests in 6721 to detect dictionaries whose keys had lost their values. That was sort of what crops up when #comeFullyUpOnReload: does not work correctly.

In any event, wouldn't it be less confusing if followup and additional tests are added to the other report and this is resolved again as the duplicate of that?

You are welcome to add additional tests to 0006721 if you think they will be needed. I just could not think of anything more clever than the dictionary integrity test.

Cheers, --Jer