'From etoys3.0 of 7 March 2008 [latest update: #2091] on 26 August 2008 at 5:17:17 pm'! "Change Set: buddiesFix2-bf Date: 26 August 2008 Author: Bert Freudenberg Fix another occurrence of #8129: protect against missing buddy object on DBus"! !SugarLauncher methodsFor: 'presence' stamp: 'bf 8/26/2008 17:16'! buddyJoined: buddyProxy "possibly sent via DBus in background process" | properties key buddy | properties := [buddyProxy getProperties] on: DBusError do: [^self]. (properties at: #owner ifAbsent: [false]) == true ifTrue: [^self]. properties := [buddyProxy getProperties] on: DBusError do: [^self]. key := properties at: #key ifAbsent: [^self]. self buddiesLock critical: [ buddies ifNil: [^self]. (buddies includesKey: key) ifTrue: [^self]. buddy := SugarBuddy fromDictionary: properties. buddies at: key put: buddy]. WorldState addDeferredUIMessage: [ self badgeHolder addMorph: buddy makeBadge. self showBadges]! ! !SugarLauncher methodsFor: 'presence' stamp: 'bf 8/26/2008 17:15'! buddyLeft: buddyProxy "sent via DBus in background process" | properties key buddy badge | properties := [buddyProxy getProperties] on: DBusError do: [^self]. key := properties at: #key ifAbsent: [^self]. buddy := self buddiesLock critical: [ buddies ifNil: [^self]. buddies removeKey: key ifAbsent: [^self]]. WorldState addDeferredUIMessage: [ badge := self badgeFor: buddy. badge ifNotNil: [badge delete]].! !