by jtuchel » Sun Nov 28, 2010 11:47 pm
John,
it's phenomenon day: after you've brought up the question how request:initialAnswer: could ever return nil, I just reloaded MedRBExtensionsApp V 8.0.1 [134] and tried again: Rename Temporary, and click cancel when asked for a name. Boom: UndefinedObject doesNotUnderstand: isEmpty.
Of course, if I put a Breakpoint in request:initialAnswer:, the result will never be nil, and therefor you are right and wrong at the same time. It cannot return nil, but it obviously does sometimes. I'll give it another try in a clean image later today.
Joachim
-----------------stack trace-----------
Debugger Stack Trace Report:
Error String: 'UndefinedObject does not understand isEmpty'
Resumable: false
UIProcess
Name: (29.11.2010 08:30:22)
Process State: suspended
Priority: 3
Executing in: StsTabbedClassesBrowserWin(EtAbstractMethodsBrowser)>>#renameTemporary
System Configuration Dump
Copyright:
VA Smalltalk V8.0.2 ; Image: 8.0.2
VM Timestamp: 4.0,(NC) 5/3/2010 (80)
(C) Copyright Instantiations 1994, 2010. All rights reserved.
(C) Copyright International Business Machines Corp. 1994, 2006. All rights reserved.
Time: 08:46:38
Date: 29.11.2010
Platform:
Virtual machine: ES
Bytecode version: 4.0
Manager version: 4.00
'OS' subsystem: 'WIN32s'
'CLIM' subsystem: 'ES'
'CP' subsystem: 'WIN32s'
'CLDT' subsystem: 'ES'
'CFS' subsystem: 'WIN32s'
'SCI' subsystem: 'WIN'
'CW' subsystem: 'WIN32s'
'CPM' subsystem: 'ES'
'CG' subsystem: 'WIN32s'
'CPIC' subsystem: 'WIN32s'
Current user: Joachim Tuchel
Connected Library:
Pathname: ...
INFO: Trapped error dumping system configuration.
=============<STACK TRACE BEGINS>============
[] in <optimized block>(ExceptionalEvent class)>>#initializeSystemExceptions
signal=Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
self=Signal on Exception: (ExError) An error has occurred.
aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
self=Signal on Exception: (ExError) An error has occurred.
aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
self=Exception: (ExError) An error has occurred.
aSignal=Signal on Exception: (ExError) An error has occurred.
exception=Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
self=Exception: (ExError) An error has occurred.
aSignalOrExceptionSelector=Signal on Exception: (ExError) An error has occurred.
handler=nil
ExceptionalEvent>>#signalWithArguments:
self=Exception: (ExError) An error has occurred.
arguments=('UndefinedObject does not understand isEmpty')
ExceptionalEvent>>#signalWith:
self=Exception: (ExError) An error has occurred.
arg1='UndefinedObject does not understand isEmpty'
UndefinedObject(Object)>>#error:
self=nil
aString='UndefinedObject does not understand isEmpty'
MessageNotUnderstood>>#defaultAction
self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[] in <optimized block>(Exception class)>>#newExceptionalEvent
signal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
aBlock=[] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
self=Exception: (ExMessageNotUnderstood) An exception has occurred
aSignal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
exception=Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
self=Exception: (ExMessageNotUnderstood) An exception has occurred
aSignalOrExceptionSelector=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
handler=nil
MessageNotUnderstood(Exception)>>#signal
self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood class(Exception class)>>#signalWith:
self=MessageNotUnderstood
signallerTag=(nil Message (#isEmpty, ()))
UndefinedObject(Object)>>#doesNotUnderstand:
self=nil
aMessage=Message (#isEmpty, ())
StsTabbedClassesBrowserWin(EtAbstractMethodsBrowser)>>#renameTemporary
self=a StsTabbedClassesBrowserWin
newName=nil
tempNode=RBVariableNode(...)
CwMenuPushButton>>#dispatchTo:
self=a CwMenuPushButton
receiver=a StsTabbedClassesBrowserWin
selectorOrDirectedMessage=#renameTemporary
CwMenu>>#simpleCallback:clientData:callData:
self=a CwMenu
w=CwPushButton(button_2)
index=2
callData=CwAnyCallbackData(
reason -> 10
)
CwCallbackRec>>#callWith:callData:
self=a CwCallbackRec
aWidget=CwPushButton(button_2)
callData=CwAnyCallbackData(
reason -> 10
)
CwPushButton(CwBasicWidget)>>#callCallbackList:callData:
self=CwPushButton(button_2)
aCallbackList=OrderedCollection(a CwCallbackRec )
callData=CwAnyCallbackData(
reason -> 10
)
callbacks=nil
size=1
rec1=nil
rec2=nil
rec3=nil
[] in CwRowColumn>>#simple:clientData:callData:
self=CwRowColumn(untitled)
aRowColumn=CwRowColumn(untitled)
clientData=nil
callData=CwRowColumnCallbackData(
reason -> 10
widget -> CwPushButton(button_2)
data -> nil
callbackData -> CwAnyCallbackData(
reason -> 10
)
)
data=CwAnyCallbackData(
reason -> 10
)
index=2
list=OrderedCollection(a CwCallbackRec )
child=CwPushButton(button_2)
OrderedCollection>>#do:
self=OrderedCollection(CwPushButton(button_0) CwPushButton(button_1) CwPushButton(button_2) CwPushButton(button_3) )
aBlock=[] in CwRowColumn>>#simple:clientData:callData:
CwRowColumn>>#simple:clientData:callData:
self=CwRowColumn(untitled)
aRowColumn=CwRowColumn(untitled)
clientData=nil
callData=CwRowColumnCallbackData(
reason -> 10
widget -> CwPushButton(button_2)
data -> nil
callbackData -> CwAnyCallbackData(
reason -> 10
)
)
data=CwAnyCallbackData(
reason -> 10
)
index=2
list=OrderedCollection(a CwCallbackRec )
CwCallbackRec>>#callWith:callData:
self=a CwCallbackRec
aWidget=CwRowColumn(untitled)
callData=CwRowColumnCallbackData(
reason -> 10
widget -> CwPushButton(button_2)
data -> nil
callbackData -> CwAnyCallbackData(
reason -> 10
)
)
CwRowColumn(CwBasicWidget)>>#callCallbackList:callData:
self=CwRowColumn(untitled)
aCallbackList=OrderedCollection(a CwCallbackRec )
callData=CwRowColumnCallbackData(
reason -> 10
widget -> CwPushButton(button_2)
data -> nil
callbackData -> CwAnyCallbackData(
reason -> 10
)
)
callbacks=nil
size=1
rec1=nil
rec2=nil
rec3=nil
CwRowColumn>>#entry:clientData:callData:
self=CwRowColumn(untitled)
aWidget=CwPushButton(button_2)
callbackList=nil
callData=CwAnyCallbackData(
reason -> 10
)
entryCallData=CwRowColumnCallbackData(
reason -> 10
widget -> CwPushButton(button_2)
data -> nil
callbackData -> CwAnyCallbackData(
reason -> 10
)
)
CwPushButton>>#callActivateCallback:
self=CwPushButton(button_2)
anEvent=an OSEvent
OSMenuItem(OSWidget)>>#callHandlers:with:
self=OSMenuItem(Rename...)
handlers=#callActivateCallback:
data=an OSEvent
DirectedMessage>>#send
self=DirectedMessage (OSMenuItem(Rename...), #callHandlers:with:, (#callActivateCallback: an OSEvent))
OSEventManager class>>#runDeferredMessages
self=OSEventManager
messageAvailable=true
message=DirectedMessage (OSMenuItem(Rename...), #callHandlers:with:, (#callActivateCallback: an OSEvent))
state=true
OSWidget class>>#readAndDispatch
self=OSWidget
state=true
gotEvent=true
CwAppContext>>#readAndDispatch
self=a CwAppContext
AbtWindowSystemStartUp class(EsWindowSystemStartUp class)>>#messageLoop
self=AbtWindowSystemStartUp
lastEventTime=1122187
appContext=a CwAppContext
[] in <optimized block>(UIProcess class)>>#forkUserInterface
[] in UIProcess(Process)>>#executeBlock:withArguments:
self=UIProcess:(29.11.2010 08:30:22){suspended,3}
aBlock=[] in UIProcess class>>#forkUserInterface
args=()
UIProcess(Process)>>#executeBlock:withArguments:
self=UIProcess:(29.11.2010 08:30:22){suspended,3}
aBlock=[] in UIProcess class>>#forkUserInterface
args=()
UIProcess(Process)>>#newProcessOn:stackSize:withArguments:named:
self=UIProcess:(29.11.2010 08:30:22){suspended,3}
aBlock=[] in UIProcess class>>#forkUserInterface
stackSize=1024
args=()
procName='(29.11.2010 08:30:22)'
==============<STACK TRACE ENDS>=============