<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Lauren --<div><br></div><div>Hmm... one might think that <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">ReferenceStream needs to take care of such things. Maybe even be configurable in the sense that "I do not care about missing classes".</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">-1 on this approach here because:</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">- Resume an un-resumable exception via "... signalerContext return: nil"</span><br></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">- Brittle check of #messageText via #beginsWith: and #endsWith:</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">This implementation is too smelly. We can do better. :-) Let's discuss this after the release.</span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px"><br></span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">Best,</span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">Marcel</span></span></div><div class="mb_sig"></div>
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 17.06.2022 05:42:09 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">A new version of System was added to project The Inbox:<br>http://source.squeak.org/inbox/System-lrnp.1362.mcz<br><br>==================== Summary ====================<br><br>Name: System-lrnp.1362<br>Author: lrnp<br>Time: 16 June 2022, 9:41:53.909823 pm<br>UUID: 54ddffc8-4493-44ca-9249-544be1acfb97<br>Ancestors: System-eem.1361<br><br>fix loading preferences from disk<br><br>If a preference file is saved and then loaded in an image that lacks a given class, preference loading should not fail just because that class is gone now.<br><br>This is only safe to do because the preferences file doesn't need that class to load successfully, and having a nil for that instance variable is okay.<br><br>=============== Diff against System-eem.1361 ===============<br><br>Item was changed:<br>  ----- Method: Preferences class>>loadPreferencesFrom: (in category 'initialization - save/load') -----<br>  loadPreferencesFrom: aFile<br>  <br>          | stream params dict desktopColor patternsToIgnore |<br>          patternsToIgnore := #('*updateMapName' '*defaultUpdateURL').<br>          stream := ReferenceStream fileNamed: aFile.<br>+  [params := stream next]<br>+              on: Error<br>+            do: [:ex |<br>+                   ((ex messageText beginsWith: 'Global "') and: [ex messageText endsWith: '" not found'])<br>+                            ifFalse: [ex pass]<br>+                           ifTrue: [<br>+                                    Transcript showln: 'Preference for undefined class ', (ex messageText findTokens: '"') second.<br>+                                  ex signalerContext return: nil]].<br>-    params := stream next.<br>        self assert: (params isKindOf: IdentityDictionary).<br>   params removeKey: #PersonalDictionaryOfPreferences.<br>   dict := stream next.<br>          self assert: (dict isKindOf: IdentityDictionary).<br>     desktopColor := stream next.<br>          stream close.<br>         dict rehash. "See http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-December/217817.html"<br>         dict keys<br>             reject: [:key | patternsToIgnore anySatisfy: [:pattern | pattern match: key]]<br>                 thenDo: [:key | | value |<br>                     value := dict at: key.<br>                        (self preferenceAt: key ifAbsent: [nil]) ifNotNil:<br>                            [:pref | [pref preferenceValue: value preferenceValue]<br>                                        on: Deprecation do: [ : err | "Ignore preferences which may not be supported anymore."]]].<br>          params keysAndValuesDo: [ :key :value | self setParameter: key to: value ].<br>   Smalltalk isMorphic<br>           ifTrue: [ Project current world fillStyle: desktopColor ]<br>             ifFalse: [ self desktopColor: desktopColor. ScheduledControllers updateGray ]!<br><br><br></div></blockquote></div>