vw75 on WinXP SP2 My colleagues report a problem in pull down menus that happens roughly half of the times they select an item. Find attached a tiny application that demos this bug. We verified on 7.4 and 7.4.1, the problem does not occur there. We suspect that this report by Andreas Wacknitz may cover the same bug: http://groups.google.com/group/comp.lang.smalltalk/browse_thread/thread/7566318094f7c4ce/07c0e9173d7d33ae?#07c0e9173d7d33ae Cheers, Reinout ------- Unhandled exception: Message not understood: #value ByteString(Object)>>doesNotUnderstand: [] in Win95MenuButtonController(MenuButtonController)>>pullDownAction BlockClosure>>ensure: Win95MenuButtonController(MenuButtonController)>>pullDownAction Win95MenuButtonController(MenuButtonController)>>redButtonPressedEvent: RedButtonPressedEvent>>dispatchTo: Win95MenuButtonController(Controller)>>handleEvent: EventDispatcher>>dispatch:to: EventDispatcher>>dispatchEvent: RedButtonPressedEvent(Event)>>dispatch optimized [] in WindowManager>>inputEvent: BlockClosure>>on:do: WindowManager>>inputEvent: RedButtonPressedEvent(StatefullEvent)>>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: ---------------------------------------------------------------------- ByteString(Object)>>doesNotUnderstand: Receiver: a ByteString Arguments: aMessage = a Message with selector: #value and arguments: #() Temporaries: excpt = a MessageNotUnderstood resumeValue = nil Context PC = 25 ---------------------------------------------------------------------- [] in Win95MenuButtonController(MenuButtonController)>>pullDownAction Receiver: a Win95MenuButtonController Instance Variables: model = a ValueHolder on: '26' view = a Win95MenuButtonView sensor = a TranslatingSensor keyboardProcessor = a KeyboardProcessor keyboardHook = nil dispatcher = nil Temporaries: menu = a Menu choice = '20' menuView = a Win95MenuView .self = a Win95MenuButtonController .menu = a Menu Context PC = 43 ---------------------------------------------------------------------- BlockClosure>>ensure: Receiver: a BlockClosure Instance Variables: method = ProbedCompiledBlock [] in MenuButtonController>>pullDownAction outerContext = Win95MenuButtonController(MenuButtonController)>>pullDownAction copiedValues = an Array[2] Arguments: aBlock = BlockClosure [] in MenuButtonController>>pullDownAction Temporaries: result = nil Context PC = 4 ---------------------------------------------------------------------- Win95MenuButtonController(MenuButtonController)>>pullDownAction Receiver: a Win95MenuButtonController Instance Variables: model = a ValueHolder on: '26' view = a Win95MenuButtonView sensor = a TranslatingSensor keyboardProcessor = a KeyboardProcessor keyboardHook = nil dispatcher = nil Temporaries: menu = a Menu Context PC = 30 ---------------------------------------------------------------------- Win95MenuButtonController(MenuButtonController)>>redButtonPressedEvent: Receiver: a Win95MenuButtonController Instance Variables: model = a ValueHolder on: '26' view = a Win95MenuButtonView sensor = a TranslatingSensor keyboardProcessor = a KeyboardProcessor keyboardHook = nil dispatcher = nil Arguments: event = a RedButtonPressedEvent Context PC = 17 ---------------------------------------------------------------------- RedButtonPressedEvent>>dispatchTo: Receiver: a RedButtonPressedEvent Instance Variables: time = 359705968 initiator = an EventDispatcher window = an ApplicationWindow 37482 state = 1 x = 117 y = 70 gx = 1701 gy = 360 buttonNumber = 1 Arguments: anObject = a Win95MenuButtonController Context PC = 4 ---------------------------------------------------------------------- Win95MenuButtonController(Controller)>>handleEvent: Receiver: a Win95MenuButtonController Instance Variables: model = a ValueHolder on: '26' view = a Win95MenuButtonView sensor = a TranslatingSensor keyboardProcessor = a KeyboardProcessor keyboardHook = nil dispatcher = nil 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 = nil trapList = nil state = nil repairDamageWhenDebugging = true flushQueueAfterError = true distributeEventsWhenDebugging = true dragDropInProgress = false dragDropTracker = nil dispatchUnknownEvents = false Arguments: event = a RedButtonPressedEvent object = a Win95MenuButtonController Temporaries: tmp = nil Context PC = 10 ---------------------------------------------------------------------- EventDispatcher>>dispatchEvent: Receiver: an EventDispatcher Instance Variables: windowController = an ApplicationStandardSystemController currentMouseConsumer = nil grabbingMouse = false keyboardProcessor = a KeyboardProcessor lastControlObject = nil trapList = nil state = nil repairDamageWhenDebugging = true flushQueueAfterError = true distributeEventsWhenDebugging = true dragDropInProgress = false dragDropTracker = nil dispatchUnknownEvents = false Arguments: event = a RedButtonPressedEvent Temporaries: objectWantingControl = a Win95MenuButtonController targetKeyboardProcessor = nil Context PC = 113 ---------------------------------------------------------------------- RedButtonPressedEvent(Event)>>dispatch Receiver: a RedButtonPressedEvent Instance Variables: time = 359705968 initiator = an EventDispatcher window = an ApplicationWindow 37482 state = 1 x = 117 y = 70 gx = 1701 gy = 360 buttonNumber = 1 Context PC = 16 ---------------------------------------------------------------------- optimized [] in WindowManager>>inputEvent: Receiver: an UndefinedObject Temporaries: .anEvent = a RedButtonPressedEvent Context PC = 5 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in WindowManager>>inputEvent: outerContext = nil copiedValues = a RedButtonPressedEvent Arguments: anExceptionSelector = ForgetEventError handlerBlock = BlockClosure [] in WindowManager>>inputEvent: Context PC = 18 ---------------------------------------------------------------------- WindowManager>>inputEvent: Receiver: a WindowManager Instance Variables: windows = an OrderedCollection[7] activeController = nil interruptLock = false outstandingMetaOrDamage = false openInProgress = false eventQueue = an EventQueue baseProcess = a Process in Semaphore>>wait dontFilterEvents = false ignoreInputEvents = nil Arguments: anEvent = a RedButtonPressedEvent Context PC = 14 ---------------------------------------------------------------------- RedButtonPressedEvent(StatefullEvent)>>dispatchForWindowManager: Receiver: a RedButtonPressedEvent Instance Variables: time = 359705968 initiator = an EventDispatcher window = an ApplicationWindow 37482 state = 1 x = 117 y = 70 gx = 1701 gy = 360 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[7] activeController = nil interruptLock = false outstandingMetaOrDamage = false openInProgress = false eventQueue = an EventQueue baseProcess = a Process in Semaphore>>wait dontFilterEvents = false ignoreInputEvents = nil Arguments: event = a RedButtonPressedEvent Context PC = 13 ---------------------------------------------------------------------- WindowManager>>processNextEvent Receiver: a WindowManager Instance Variables: windows = an OrderedCollection[7] activeController = nil interruptLock = false outstandingMetaOrDamage = false openInProgress = false eventQueue = an EventQueue baseProcess = a Process in Semaphore>>wait dontFilterEvents = false ignoreInputEvents = nil 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 <?xml version="1.0"?> <st-source> <!-- Name: PullDownActionValueError DbIdentifier: Soops741 DbTrace: 70254 PackageName: PullDownActionValueError Parcel: #('PullDownActionValueError') PrintStringCache: (2,Tom) Date: 1:55:32 pm July 20, 2007 --> <time-stamp>From VisualWorks®, 7.4.1 of May 30, 2006 on July 20, 2007 at 1:55:32 pm</time-stamp> <do-it>(Dialog confirm: 'You are filing-in a Parcel source file!\\While this is possible it will not have\the same effect as loading the parcel.\None of the Parcel''s prerequisites will\be loaded and none of its load actions\will be performed.\\Are you sure you want to file-in?' withCRs) ifFalse: [self error: 'Parcel file-in abandoned. Choose terminate or close.']</do-it> <class> <name>StringMenuTest</name> <environment>Smalltalk</environment> <super>UI.ApplicationModel</super> <private>false</private> <indexed-type>none</indexed-type> <inst-vars>string </inst-vars> <class-inst-vars></class-inst-vars> <imports></imports> <category>UIApplications-New</category> <attributes> <package>PullDownActionValueError</package> </attributes> </class> <comment> <class-id>StringMenuTest</class-id> <body>This shows a reproducable uhe in vw7.5, #value being sent to a menu choice, which is a string... Do: StringMenuTest open, and select an item from the dropdown menu until it crashes </body> </comment> <methods> <class-id>StringMenuTest</class-id> <category>aspects</category> <body package="PullDownActionValueError" selector="string">string "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^string isNil ifTrue: [string := nil asValue] ifFalse: [string]</body> <body package="PullDownActionValueError" selector="stringMenu">stringMenu | mb | mb := MenuBuilder new. 1 to: 100 do: [:n | mb add: n printString->n printString ]. ^mb menu</body> <body package="PullDownActionValueError" selector="stringMenuSimple">stringMenuSimple | mb fnames | mb := MenuBuilder new. fnames := #('lkj' 'lkjlkj' 'lkjlkj'). fnames do: [:n | mb add: n->n ]. ^mb menu</body> </methods> <methods> <class-id>StringMenuTest class</class-id> <category>example</category> <body package="PullDownActionValueError" selector="example">example "This shows a reproducable uhe in vw7.5, #value being sent to a menu choice, which is a string... Do: StringMenuTest open, and select an item from the dropdown menu until it crashes" self open</body> </methods> <methods> <class-id>StringMenuTest class</class-id> <category>interface specs</category> <body package="PullDownActionValueError" selector="windowSpec">windowSpec "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 817 360 1490 804 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.MenuButtonSpec} #layout: #(#{Graphics.Rectangle} 49 65 149 88 ) #name: #StringMenuButton #model: #string #menu: #stringMenu ) ) ) )</body> </methods> <do-it>"Imported Classes:"</do-it> <do-it>self error: 'Attempting to file-in parcel imports. Choose terminate or close'</do-it> <class> <name>ApplicationModel</name> <environment>UI</environment> <super>UI.Model</super> <private>false</private> <indexed-type>none</indexed-type> <inst-vars>builder uiSession eventHandlers </inst-vars> <class-inst-vars>savedWindowInformation </class-inst-vars> <imports></imports> <category>UIBuilder-Framework</category> <attributes> <package>UIBuilder-Framework</package> </attributes> </class> </st-source> PullDownActionValueError.pcl (3K) Download Attachment |
Free forum by Nabble | Edit this page |