[BUG] Senders of nothing

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[BUG] Senders of nothing

Boris Popov, DeepCove Labs (SNN)
If you try to search for senders of nothing (as in, open the dialog and
click ok), you'll get back an exception when results dialog tries to
determine initial selection. If you are asking yourself why it would do
that if there should be no results in the first place, you just won a
bonus point. You can fix the offender to do something that'll get you
through without errors via the attached file-in, at which point you'll
notice the list of "senders" actually shows you methods that reference
an empty symbol #'' which really isn't a message send afaik :)

Unhandled exception: this collection is empty
Array(Object)>>error:
Array(Collection)>>emptyCollectionError
Array(Collection)>>emptyCheck
Array(SequenceableCollection)>>first
MethodFilterReference>>initialSelection
MethodCollector>>browseSelect:
SmalltalkWorkbench class>>promptThenBrowseCallsFrom:
optimized [] in VisualLauncher>>browseSendersOf
VisualLauncher>>applicationForClassNamed:do:
VisualLauncher>>browseSendersOf
WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSymbol:
WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSelection:
optimized [] in Win95MenuBarButtonController>>menuBarActionForMenu:
BlockClosure>>ensure:
WinXPMenuBarButtonController(Win95MenuBarButtonController)>>menuBarActionForMenu:
WinXPMenuBarButtonController(MenuBarButtonController)>>menuBarAction
WinXPMenuBarButtonController(MenuBarButtonController)>>redButtonPressedEvent:
RedButtonPressedEvent>>dispatchTo:
WinXPMenuBarButtonController(Controller)>>handleEvent:
EventDispatcher>>dispatch:to:
EventDispatcher>>dispatchEvent:
RedButtonPressedEvent(Event)>>dispatch
RedButtonPressedEvent(Event)>>dispatchForWindowManager:
optimized [] in WindowManager>>safelyDispatchForWindowManager:
BlockClosure>>on:do:
WindowManager>>safelyDispatchForWindowManager:
WindowManager>>processNextEvent
optimized [] in [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
Array(Object)>>error:
Receiver:
    an Array
Arguments:
    aStringOrMessage = an UserMessage('this collection is empty',
#errEmptyCollection, #dialogs)
Temporaries:
    lastNonSpace = 24
    aString = 'this collection is empty'
Context PC = 18

----------------------------------------------------------------------
Array(Collection)>>emptyCollectionError
Receiver:
    an Array
Context PC = 10

----------------------------------------------------------------------
Array(Collection)>>emptyCheck
Receiver:
    an Array
Context PC = 8

----------------------------------------------------------------------
Array(SequenceableCollection)>>first
Receiver:
    an Array
Context PC = 4

----------------------------------------------------------------------
MethodFilterReference>>initialSelection
Receiver:
    a MethodFilterReference
Instance Variables:
    value = #''
    index = 0
    isSpecialLiteral = false
Context PC = 9

----------------------------------------------------------------------
MethodCollector>>browseSelect:
Receiver:
    a MethodCollector
Instance Variables:
    browser = nil
    interfaceWindow = nil
    filter = a MethodFilterNull
Arguments:
    aFilter = a MethodFilterReference
Temporaries:
    result = a List[12]
Context PC = 29

----------------------------------------------------------------------
SmalltalkWorkbench class>>promptThenBrowseCallsFrom:
Receiver:
    a SmalltalkWorkbench class
Instance Variables:
    superclass = Object
    methodDict = a MethodDictionary[0]
    format = 16384
    subclasses = nil
    instanceVariables = an Array[0]
    organization =
    name = #SmalltalkWorkbench
    classPool = a NameSpaceOfClass[0]
    environment = a NameSpace[267]
Arguments:
    aWindowOrNil = an ApplicationWindow 13
Temporaries:
    choice = #''
    mc = a MethodCollector
Context PC = 29

----------------------------------------------------------------------
optimized [] in VisualLauncher>>browseSendersOf
Receiver:
    an UndefinedObject
Arguments:
    class = SmalltalkWorkbench
Temporaries:
    .self = a VisualLauncher
Context PC = 9

----------------------------------------------------------------------
VisualLauncher>>applicationForClassNamed:do:
Receiver:
    a VisualLauncher
Instance Variables:
    dependents = an ApplicationWindow 13
    builder = an UIBuilder
    uiSession = a ControlManager
    eventHandlers = nil
    menuBar = a Menu
    toolBar = a ValueHolder on: a Menu
    textCollector = a TextCollector on: Text for ''
    toolDock = a VisualLauncherToolDock
Arguments:
    aSymbol = #{SmalltalkWorkbench}
    aBlock = BlockClosure [] in VisualLauncher>>browseSendersOf
Temporaries:
    cl = SmalltalkWorkbench
Context PC = 12

----------------------------------------------------------------------
VisualLauncher>>browseSendersOf
Receiver:
    a VisualLauncher
Instance Variables:
    dependents = an ApplicationWindow 13
    builder = an UIBuilder
    uiSession = a ControlManager
    eventHandlers = nil
    menuBar = a Menu
    toolBar = a ValueHolder on: a Menu
    textCollector = a TextCollector on: Text for ''
    toolDock = a VisualLauncherToolDock
Context PC = 9

----------------------------------------------------------------------
WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSymbol:
Receiver:
    a WinXPMenuBarButtonController
Instance Variables:
    model = nil
    view = a WinXPMenuBarButtonView
    sensor = a TranslatingSensor
    highlightOnOpen = false
Arguments:
    menuSelection = #browseSendersOf
Context PC = 38

----------------------------------------------------------------------
WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSelection:
Receiver:
    a WinXPMenuBarButtonController
Instance Variables:
    model = nil
    view = a WinXPMenuBarButtonView
    sensor = a TranslatingSensor
    highlightOnOpen = false
Arguments:
    menuSelection = #browseSendersOf
Context PC = 21

----------------------------------------------------------------------
optimized [] in Win95MenuBarButtonController>>menuBarActionForMenu:
Receiver:
    an UndefinedObject
Temporaries:
    valueResult = a MenuItem 'Senders of Selector...'
    menuView = a WinXPMenuView
    .self = a WinXPMenuBarButtonController
    .aMenu = a Menu
Context PC = 55

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
    a BlockClosure
Instance Variables:
    method = CompiledBlock [] in
Win95MenuBarButtonController>>menuBarActionForMenu:
    outerContext = nil
    copiedValues = an Array[2]
Arguments:
    aBlock = BlockClosure [] in
Win95MenuBarButtonController>>menuBarActionForMenu:
Temporaries:
    result = nil
Context PC = 4

----------------------------------------------------------------------
WinXPMenuBarButtonController(Win95MenuBarButtonController)>>menuBarActionForMenu:
Receiver:
    a WinXPMenuBarButtonController
Instance Variables:
    model = nil
    view = a WinXPMenuBarButtonView
    sensor = a TranslatingSensor
    highlightOnOpen = false
Arguments:
    aMenu = a Menu
Temporaries:
    performer = a VisualLauncher
Context PC = 31

----------------------------------------------------------------------
WinXPMenuBarButtonController(MenuBarButtonController)>>menuBarAction
Receiver:
    a WinXPMenuBarButtonController
Instance Variables:
    model = nil
    view = a WinXPMenuBarButtonView
    sensor = a TranslatingSensor
    highlightOnOpen = false
Temporaries:
    theMenu = a Menu
Context PC = 20

----------------------------------------------------------------------
WinXPMenuBarButtonController(MenuBarButtonController)>>redButtonPressedEvent:
Receiver:
    a WinXPMenuBarButtonController
Instance Variables:
    model = nil
    view = a WinXPMenuBarButtonView
    sensor = a TranslatingSensor
    highlightOnOpen = false
Arguments:
    event = a RedButtonPressedEvent
Context PC = 10

----------------------------------------------------------------------
RedButtonPressedEvent>>dispatchTo:
Receiver:
    a RedButtonPressedEvent
Instance Variables:
    time = 173329109
    initiator = an EventDispatcher
    window = an ApplicationWindow 13
    state = 1
    x = 100
    y = 11
    gx = 237
    gy = 140
    buttonNumber = 1
Arguments:
    anObject = a WinXPMenuBarButtonController
Context PC = 4

----------------------------------------------------------------------
WinXPMenuBarButtonController(Controller)>>handleEvent:
Receiver:
    a WinXPMenuBarButtonController
Instance Variables:
    model = nil
    view = a WinXPMenuBarButtonView
    sensor = a TranslatingSensor
    highlightOnOpen = false
Arguments:
    event = a RedButtonPressedEvent
Context PC = 4

----------------------------------------------------------------------
EventDispatcher>>dispatch:to:
Receiver:
    an EventDispatcher
Instance Variables:
    windowController = an ApplicationStandardSystemController
    currentMouseConsumer = nil
    grabbingMouse = false
    keyboardProcessor = a KeyboardProcessor
    lastControlObject = a TextEditorController
    trapList = nil
    state = nil
    repairDamageWhenDebugging = true
    flushQueueAfterError = true
    distributeEventsWhenDebugging = true
    dragDropInProgress = false
    dragDropTracker = nil
    dispatchUnknownEvents = false
Arguments:
    event = a RedButtonPressedEvent
    object = a WinXPMenuBarButtonController
Temporaries:
    tmp = nil
Context PC = 10

----------------------------------------------------------------------
EventDispatcher>>dispatchEvent:
Receiver:
    an EventDispatcher
Instance Variables:
    windowController = an ApplicationStandardSystemController
    currentMouseConsumer = nil
    grabbingMouse = false
    keyboardProcessor = a KeyboardProcessor
    lastControlObject = a TextEditorController
    trapList = nil
    state = nil
    repairDamageWhenDebugging = true
    flushQueueAfterError = true
    distributeEventsWhenDebugging = true
    dragDropInProgress = false
    dragDropTracker = nil
    dispatchUnknownEvents = false
Arguments:
    event = a RedButtonPressedEvent
Temporaries:
    objectWantingControl = a WinXPMenuBarButtonController
    targetKeyboardProcessor = nil
Context PC = 113

----------------------------------------------------------------------
RedButtonPressedEvent(Event)>>dispatch
Receiver:
    a RedButtonPressedEvent
Instance Variables:
    time = 173329109
    initiator = an EventDispatcher
    window = an ApplicationWindow 13
    state = 1
    x = 100
    y = 11
    gx = 237
    gy = 140
    buttonNumber = 1
Context PC = 16

----------------------------------------------------------------------
RedButtonPressedEvent(Event)>>dispatchForWindowManager:
Receiver:
    a RedButtonPressedEvent
Instance Variables:
    time = 173329109
    initiator = an EventDispatcher
    window = an ApplicationWindow 13
    state = 1
    x = 100
    y = 11
    gx = 237
    gy = 140
    buttonNumber = 1
Arguments:
    aWinMgr = a WindowManager
Context PC = 4

----------------------------------------------------------------------
optimized [] in WindowManager>>safelyDispatchForWindowManager:
Receiver:
    an UndefinedObject
Temporaries:
    .event = a RedButtonPressedEvent
    .self = a WindowManager
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
    a BlockClosure
Instance Variables:
    method = CompiledBlock [] in
WindowManager>>safelyDispatchForWindowManager:
    outerContext = nil
    copiedValues = an Array[2]
Arguments:
    anExceptionSelector = BadControllerError
    handlerBlock = BlockClosure [] in
WindowManager>>safelyDispatchForWindowManager:
Context PC = 18

----------------------------------------------------------------------
WindowManager>>safelyDispatchForWindowManager:
Receiver:
    a WindowManager
Instance Variables:
    windows = an OrderedCollection[1]
    activeController = nil
    interruptLock = false
    outstandingMetaOrDamage = false
    openInProgress = false
    eventQueue = an EventQueue
    baseProcess = a Process in Semaphore>>wait
    dontFilterEvents = false
Arguments:
    event = a RedButtonPressedEvent
Context PC = 13

----------------------------------------------------------------------
WindowManager>>processNextEvent
Receiver:
    a WindowManager
Instance Variables:
    windows = an OrderedCollection[1]
    activeController = nil
    interruptLock = false
    outstandingMetaOrDamage = false
    openInProgress = false
    eventQueue = an EventQueue
    baseProcess = a Process in Semaphore>>wait
    dontFilterEvents = false
Temporaries:
    event = a RedButtonPressedEvent
Context PC = 9

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>newProcess
Receiver:
    an UndefinedObject
Temporaries:
    .self = a WindowManager
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
    a BlockClosure
Instance Variables:
    method = CompiledBlock [] in [] in WindowManager>>newProcess
    outerContext = nil
    copiedValues = a WindowManager
Arguments:
    anExceptionSelector = TerminateException
    handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
Context PC = 18

----------------------------------------------------------------------
optimized [] in WindowManager>>newProcess
Receiver:
    an UndefinedObject
Temporaries:
    .self = a WindowManager
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
    a BlockClosure
Instance Variables:
    method = CompiledBlock [] in WindowManager>>newProcess
    outerContext = nil
    copiedValues = a WindowManager
Arguments:
    anExceptionSelector = TerminateException
    handlerBlock = BlockClosure [] in [] in Process
class>>forBlock:priority:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Process class>>forBlock:priority:
Receiver:
    an UndefinedObject
Temporaries:
    .aBlock = BlockClosure [] in WindowManager>>newProcess
Context PC = 9

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.


<?xml version="1.0"?>

<st-source>
<time-stamp>From VisualWorks®, 7.4 of December 5, 2005 on January 19, 2006 at 9:45:11 am</time-stamp>


<methods>
<class-id>Tools.MethodFilterReference</class-id> <category>accessing</category>

<body package="Tools-Programming" selector="initialSelection">initialSelection
        ^value isSymbol
                ifTrue: [(value keywords detect: [:ea | true] ifNone: [nil]) ifNil: [value displayString]]
                ifFalse: [value displayString]</body>
</methods>

</st-source>