Resolve script for 'double' classes visible in Gemtools

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Resolve script for 'double' classes visible in Gemtools

Johan Brichau-2
Hi,

I frequently run into the problem of having 'double' classes in my browser (in Gemtools).
In an earlier post, Dale explained that this is because some subclasses still point to an older version of the same class. Recompiling the subclasses always resolves it.
Because I got tired of doing it manually, I wrote this little snippet and thought to share it on the list because it probably can come in handy when you run into the same problem.

|classesWithOldSuperclasses|
classesWithOldSuperclasses := Set new.
Smalltalk allClasses do:[:s |
        Smalltalk allClasses do:[:c |
                (c superclass name = s name and:[(c superclass = s) not]) ifTrue:[classesWithOldSuperclasses add: c]]].
classesWithOldSuperclasses do:[:c | Transcript show: c name;cr. c definition evaluate]


But maybe it's something I'm doing wrong? I'm always loading via metacello like the snippet below. if there is a way to avoid having the problem in the first place... I would be glad to know it.


MCPlatformSupport commitOnAlmostOutOfMemoryDuring: [
  [
        (Smalltalk at: #ConfigurationOfMyProject) loadLatest
  ]
                on: Warning
                do: [:ex | ex resume ]].


cheers
Johan
Reply | Threaded
Open this post in threaded view
|

Re: Resolve script for 'double' classes visible in Gemtools

Dale Henrichs
Johan,

I'd be interested in tracking this one down as well ... There must be a bug that is being triggered, for you to get this problem on a regular basis ... perhaps we can isolate the classes involved and identify the class shape changes that are triggering the error?

Dale

----- Original Message -----
| From: "Johan Brichau" <[hidden email]>
| To: "GemStone Seaside beta discussion" <[hidden email]>
| Sent: Friday, July 8, 2011 7:17:49 AM
| Subject: [GS/SS Beta] Resolve script for 'double' classes visible in Gemtools
|
| Hi,
|
| I frequently run into the problem of having 'double' classes in my
| browser (in Gemtools).
| In an earlier post, Dale explained that this is because some
| subclasses still point to an older version of the same class.
| Recompiling the subclasses always resolves it.
| Because I got tired of doing it manually, I wrote this little snippet
| and thought to share it on the list because it probably can come in
| handy when you run into the same problem.
|
| |classesWithOldSuperclasses|
| classesWithOldSuperclasses := Set new.
| Smalltalk allClasses do:[:s |
| Smalltalk allClasses do:[:c |
| (c superclass name = s name and:[(c superclass = s) not])
| ifTrue:[classesWithOldSuperclasses add: c]]].
| classesWithOldSuperclasses do:[:c | Transcript show: c name;cr. c
| definition evaluate]
|
|
| But maybe it's something I'm doing wrong? I'm always loading via
| metacello like the snippet below. if there is a way to avoid having
| the problem in the first place... I would be glad to know it.
|
|
| MCPlatformSupport commitOnAlmostOutOfMemoryDuring: [
|   [
| (Smalltalk at: #ConfigurationOfMyProject) loadLatest
|   ]
|                 on: Warning
|                 do: [:ex | ex resume ]].
|
|
| cheers
| Johan