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@web.de> wrote:
Hi Lyn

2015-10-13 21:36 GMT+02:00 Lyn Headley <laheadle@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