Hi folks:  I am trying to understand ImageSegment methods like activeClasses, swapOutInactiveClasses, discoverActiveClasses among others. One of the comments of those methods says:<br><br>&quot;NOTE:  discoverActiveClasses uses Squeak&#39;s ability to detect and recover from faults due to a nil method dictionary.  It staches the method dict in with the organization during the time when discovery is in progress (Gag me with a spoon).  This is why the faults need to be cleared promptly before resuming normal work with the system.  It is also important that classes *do not* refer directly to their method dictionary, but only via the accessor message.&quot;<br>
<br>So, it seems to HACK (it forces a fault) this MD fault recover to discover inactive classes and other things. Ok, forget that hack for a moment. <br><br>What questions is, what are these faults?  Why a method dictionary can be in nil ? How is this produced ? And how is it fixed? <br>
<br>I saw for example this:<br><br>Behaviour&gt;&gt;methodDict<br>    methodDict == nil ifTrue: [self recoverFromMDFaultWithTrace].<br>    ^ methodDict<br><br><br>But again...how can that be nil ???<br><br>Thank you very much.<br>
<br>Marian<br><br>