[Pharo-users] Renaming a Class triggers debugger

Lyn Headley laheadle at gmail.com
Tue Oct 13 22:26:50 EDT 2015


Hi Nicolai,

I had a bunch of messagebrowsers open, mostly on various classes of Morphic
and Montecello packages; nothing that was related to the class I renamed.
Since I got your message I have closed the MessageBrowsers, and now there
are only two debuggers triggered when I add or remove a method :-)

It looks like WorldState's queue of deferredUIMessages contains a stale
block or something...

runStepMethodsIn: aWorld
"Perform periodic activity inbetween event cycles"
| queue nextInQueue|
"If available dispatch some deferred UI Message"
queue := self class deferredUIMessages.
[(nextInQueue := queue nextOrNil) isNil]
whileFalse: [ nextInQueue value <----- error ].
self runLocalStepMethodsIn: aWorld.
"The multi-threaded global Transcript needs to be updated periodically and
synchronously with the UI."
Transcript stepGlobal.

On Tue, Oct 13, 2015 at 2:52 PM, Nicolai Hess <nicolaihess at web.de> wrote:

> Hi Lyn
>
> 2015-10-13 21:36 GMT+02:00 Lyn Headley <laheadle at gmail.com>:
>
>> Hello,
>>
>> I'm running pharo 4 and I'm having a problem. I recently renamed a
>> class using the rename: menu item in the standard system browser (I
>> believe it's called Nautilus) and now I am getting uncaught exceptions
>> whenever I add or remove a method (three debugger windows pop
>> up). Here is the stack trace; any advice?
>>
>
> The error is from the MessageBrowser, the MessageBrowser registers itself
> for every class change (method added/removed) and tests if this added /
> removed
> message should be removed/added to its lists.
>
> Do you have any MessageBrowser open ?
> - a sendersOf or implementorsOf
> - if so,  what search term is used in the browser (see window title)
>
> I tried to recreate this error but all I could get was a MessageBrowser
> with
> "nil" entries - no exception was thrown.
>
>
>>
>> Thank you.
>>
>> Lyn
>>
>> Author: LynHeadley
>> Date: 2015-10-13T08:51:16.837987-07:00
>>
>> UndefinedObject(Object)>>doesNotUnderstand: #theMetaClass
>> RGMetaclassDefinition>>realClass
>> RGMethodDefinition(RGElementDefinition)>>realParent
>> RGMethodDefinition(RGElementDefinition)>>realClass
>> RGMethodDefinition>>methodClass
>> ByteSymbol(Symbol)>>value:
>> OrderedCollection>>collect:
>> MessageBrowser>>buildHierarchyForMessages:
>> MessageBrowser>>cacheHierarchyForClasses:
>> MessageBrowser>>messages:
>> [
>> (item methodClass notNil and: [ item methodClass isObsolete not ])
>> ifTrue: [
>> | sel text boolean |
>> boolean := textModel hasUnacceptedEdits.
>> boolean
>> ifTrue: [ text := textModel pendingText ].
>> sel := listModel selectedItem.
>> self
>> messages:
>> (listModel listItems
>> add: item asFullRingDefinition;
>> yourself).
>> listModel setSelectedItem: sel.
>> boolean
>> ifTrue: [ textModel pendingText: text ] ] ] in
>> MessageBrowser>>methodAdded:
>> WorldState>>runStepMethodsIn:
>> WorldMorph>>runStepMethods
>> WorldState>>doOneCycleNowFor:
>> WorldState>>doOneCycleFor:
>> WorldMorph>>doOneCycle
>> [
>> [
>> World doOneCycle.
>> Processor yield.
>> false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
>> [
>> self value.
>> Processor terminateActive ] in BlockClosure>>newProcess
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-users_lists.pharo.org/attachments/20151013/ba7ceb86/attachment.html>


More information about the Pharo-users mailing list