=============================================================================== Notice: Cannot read stored value of #notExistingClassStoredSettingSTONString. Exception: KeyNotFound: key #MockNotExistingClass not found in SystemDictionary =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, 'RPackageNewStubClass' from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted11 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #TraitForTestToBeDeleted1 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted44 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #TraitForTestToBeDeleted1 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #ClassForTestToBeDeleted79 from Undeclared. Check them after this change. =============================================================================== =============================================================================== Notice: There are references to, #TraitForTestToBeDeleted1 from Undeclared. Check them after this change. =============================================================================== THERE_BE_DRAGONS_HERE SubscriptOutOfBounds: 1 16 August 2023 8:39:22.642 pm VM: Win32 - x86_64 - Win64 - CoInterpreter VMMaker-tonel.1 uuid: 88b8ee0c-6fbf-0d00-8734-223b06b2eff1 Aug 16 2023 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: 88b8ee0c-6fbf-0d00-8734-223b06b2eff1 Aug 16 2023 v10.0.6 - Commit: b67609b9 - Date: 2023-08-16 18:51:13 +0200 Image: Pharo11.0.0 [Build information: Pharo-11.0.0+build.704.sha.7e0219e7f720faf2cfd6083adef507741de47cf2 (64 Bit)] [:err | "Handle a drawing error" | errCtx errMorph | errCtx := thisContext. [ errCtx := errCtx sender. "Search the sender chain to find the morph causing the problem" [errCtx notNil and:[(errCtx receiver isMorph) not]] whileTrue:[errCtx := errCtx sender]. "If we're at the root of the context chain then we have a fatal drawing problem" errCtx ifNil:[^self handleFatalDrawingError: err description]. errMorph := errCtx receiver. "If the morph causing the problem has already the #drawError flag set, then search for the next morph above in the caller chain." errMorph hasProperty: #errorOnDraw ] whileTrue. errMorph setProperty: #errorOnDraw toValue: true. "Install the old error handler, so we can re-raise the error" err signal. ] in WorldState>>displayWorldSafely: Receiver: a WorldState Arguments and temporary variables: aWorld: a WorldMorph(687437312) [world] err: SubscriptOutOfBounds: 1 errCtx: [ :ex | "This should do it unless you don't screw up the bounds"[..] errMorph: a SystemWindow(1061571584) named: first (1/3) Receiver's instance variables: hands: an Array(a HandMorph(540002304)) damageRecorder: a DamageRecorder stepList: a Heap() lastStepTime: 555524 lastStepMessage: nil alarms: a Heap(MorphicAlarm(#hideShow -> a RubCursor(556591616))) lastAlarmTime: 574683 activeHand: a HandMorph(540002304) currentCursor: ((CursorWithMask extent: (16@16) depth: 1 fromArray: #( [..] worldRenderer: a NullWorldRenderer realWindowExtent: nil deferredUIMessages: WaitfreeQueue with 0 items FullBlockClosure(BlockClosure)>>cull: Receiver: [:err | "Handle a drawing error" | errCtx errMorph | errCtx := thisContext. [ [..] Arguments and temporary variables: anArg: SubscriptOutOfBounds: 1 Receiver's instance variables: outerContext: WorldState>>displayWorldSafely: compiledBlock: a CompiledBlock: [:err | "Handle a drawing error" | errC[..] numArgs: 1 receiver: a WorldState [:ex | errorHandlerBlock cull: ex] in FullBlockClosure(BlockClosure)>>onErrorDo: Receiver: [aWorld displayWorld] Arguments and temporary variables: errorHandlerBlock: [:err | "Handle a drawing error" | errCtx errMorph |[..] ex: SubscriptOutOfBounds: 1 Receiver's instance variables: outerContext: WorldState>>displayWorldSafely: compiledBlock: a CompiledBlock: [aWorld displayWorld] numArgs: 0 receiver: a WorldState FullBlockClosure(BlockClosure)>>cull: Receiver: [:ex | errorHandlerBlock cull: ex] Arguments and temporary variables: anArg: SubscriptOutOfBounds: 1 Receiver's instance variables: outerContext: FullBlockClosure(BlockClosure)>>onErrorDo: compiledBlock: a CompiledBlock: [:ex | errorHandlerBlock cull: ex] numArgs: 1 receiver: [aWorld displayWorld] Context>>evaluateSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: SubscriptOutOfBounds: 1 value: nil Receiver's instance variables: sender: FullBlockClosure(BlockClosure)>>onErrorDo: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [aWorld displayWorld] Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: SubscriptOutOfBounds: 1 Receiver's instance variables: sender: FullBlockClosure(BlockClosure)>>onErrorDo: pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [aWorld displayWorld] SubscriptOutOfBounds(Exception)>>pass Receiver: SubscriptOutOfBounds: 1 Arguments and temporary variables: nextHandler: FullBlockClosure(BlockClosure)>>on:do: Receiver's instance variables: messageText: '1' tag: nil signaler: an OrderedCollection() signalContext: SubscriptOutOfBounds(Exception)>>signal handlerContext: FullBlockClosure(BlockClosure)>>on:do: outerContext: nil subscript: 1 lowerBound: nil upperBound: nil [ :ex | "This should do it unless you don't screw up the bounds" fullBounds := bounds. ex pass ] in SystemWindow(Morph)>>computeFullBounds Receiver: a SystemWindow(1061571584) named: first (1/3) Arguments and temporary variables: ex: SubscriptOutOfBounds: 1 Receiver's instance variables: bounds: (0.0@18.0) corner: (240.0@98.0) owner: a WorldMorph(687437312) [world] submorphs: an Array(a WindowEdgeGripMorph(832624640) a WindowEdgeGripMorph([..] fullBounds: (0.0@18.0) corner: (240.0@98.0) color: (Color r: 0.823069403714565 g: 0.823069403714565 b: 0.82306940371456[..] extension: a MorphExtension (885975552) [other: (kmDispatcher -> a KMDispa[..] borderWidth: 1 borderColor: Color lightGray model: nil labelString: 'first (1/3)' stripes: an Array(a Morph(1016993792) a Morph(792845312)) label: a LabelMorph(218887680)'first (1/3)' closeBox: a MultistateButtonMorph(206286336) collapseBox: a MultistateButtonMorph(1019606016) paneMorphs: an Array(a RubScrolledTextMorph(673079296)) collapsedFrame: nil fullFrame: (0.0@18.0) corner: (240.0@98.0) isCollapsed: false menuBox: a MultistateButtonMorph(577376768) mustNotClose: false labelWidgetAllowance: 133 updatablePanes: #() labelArea: an AlignmentMorph(567013888) expandBox: a MultistateButtonMorph(347492352) embeddable: nil isResizeable: true taskbarTask: nil FullBlockClosure(BlockClosure)>>cull: Receiver: [ :ex | "This should do it unless you don't screw up the bounds" fullBounds := b[..] Arguments and temporary variables: anArg: SubscriptOutOfBounds: 1 Receiver's instance variables: outerContext: SystemWindow(Morph)>>computeFullBounds compiledBlock: a CompiledBlock: [ :ex | "This should do it unless you do[..] numArgs: 1 receiver: a SystemWindow(1061571584) named: first (1/3) Context>>evaluateSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: SubscriptOutOfBounds: 1 value: nil Receiver's instance variables: sender: SystemWindow(Morph)>>computeFullBounds pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ self doLayoutIn: self layoutBounds ] Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: SubscriptOutOfBounds: 1 Receiver's instance variables: sender: SystemWindow(Morph)>>computeFullBounds pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ self doLayoutIn: self layoutBounds ] SubscriptOutOfBounds(Exception)>>pass Receiver: SubscriptOutOfBounds: 1 Arguments and temporary variables: nextHandler: FullBlockClosure(BlockClosure)>>on:do: Receiver's instance variables: messageText: '1' tag: nil signaler: an OrderedCollection() signalContext: SubscriptOutOfBounds(Exception)>>signal handlerContext: FullBlockClosure(BlockClosure)>>on:do: outerContext: nil subscript: 1 lowerBound: nil upperBound: nil [ :ex | "This should do it unless you don't screw up the bounds" fullBounds := bounds. ex pass ] in RubScrolledTextMorph(Morph)>>computeFullBounds Receiver: a RubScrolledTextMorph(673079296) Arguments and temporary variables: ex: SubscriptOutOfBounds: 1 Receiver's instance variables: bounds: (5.0@46.0) corner: (235.0@93.0) owner: a SystemWindow(1061571584) named: first (1/3) submorphs: an Array(a RubTextScrollPane(222716928) a RubAdornmentDisplayer([..] fullBounds: (5.0@46.0) corner: (235.0@93.0) color: Color white extension: a MorphExtension (90158592) [other: (announcer -> an Announcer)] hasEditingConflicts: false hasUnacceptedEdits: true alwaysAccept: nil setTextSelector: nil getTextSelector: #getText getSelectionSelector: #primarySelectionInterval setSelectionSelector: nil autoAccept: false scrollPane: a RubTextScrollPane(222716928) rulers: a SortedCollection(a RubAdornmentDisplayer(143175168)) enabled: true highlights: an OrderedCollection() getBackgroundColorSelector: nil askBeforeDiscardingEdits: true FullBlockClosure(BlockClosure)>>cull: Receiver: [ :ex | "This should do it unless you don't screw up the bounds" fullBounds := b[..] Arguments and temporary variables: anArg: SubscriptOutOfBounds: 1 Receiver's instance variables: outerContext: RubScrolledTextMorph(Morph)>>computeFullBounds compiledBlock: a CompiledBlock: [ :ex | "This should do it unless you do[..] numArgs: 1 receiver: a RubScrolledTextMorph(673079296) Context>>evaluateSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: SubscriptOutOfBounds: 1 value: nil Receiver's instance variables: sender: RubScrolledTextMorph(Morph)>>computeFullBounds pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ self doLayoutIn: self layoutBounds ] Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: SubscriptOutOfBounds: 1 Receiver's instance variables: sender: RubScrolledTextMorph(Morph)>>computeFullBounds pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ self doLayoutIn: self layoutBounds ] SubscriptOutOfBounds(Exception)>>pass Receiver: SubscriptOutOfBounds: 1 Arguments and temporary variables: nextHandler: FullBlockClosure(BlockClosure)>>on:do: Receiver's instance variables: messageText: '1' tag: nil signaler: an OrderedCollection() signalContext: SubscriptOutOfBounds(Exception)>>signal handlerContext: FullBlockClosure(BlockClosure)>>on:do: outerContext: nil subscript: 1 lowerBound: nil upperBound: nil [ :ex | "This should do it unless you don't screw up the bounds" fullBounds := bounds. ex pass ] in RubTextScrollPane(Morph)>>computeFullBounds Receiver: a RubTextScrollPane(222716928) Arguments and temporary variables: ex: SubscriptOutOfBounds: 1 Receiver's instance variables: bounds: (5.0@46.0) corner: (235.0@93.0) owner: a RubScrolledTextMorph(673079296) submorphs: an Array(a TransformWithLayoutMorph(249506816)) fullBounds: (5.0@46.0) corner: (235.0@93.0) color: Color transparent extension: a MorphExtension (499771392) [other: (announcer -> an Announcer)] scroller: a TransformWithLayoutMorph(249506816) hScrollbar: a RubScrollBar(853002752) vScrollbar: a RubScrollBar(890698240) drawFocusBorder: true FullBlockClosure(BlockClosure)>>cull: Receiver: [ :ex | "This should do it unless you don't screw up the bounds" fullBounds := b[..] Arguments and temporary variables: anArg: SubscriptOutOfBounds: 1 Receiver's instance variables: outerContext: RubTextScrollPane(Morph)>>computeFullBounds compiledBlock: a CompiledBlock: [ :ex | "This should do it unless you do[..] numArgs: 1 receiver: a RubTextScrollPane(222716928) Context>>evaluateSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: SubscriptOutOfBounds: 1 value: nil Receiver's instance variables: sender: RubTextScrollPane(Morph)>>computeFullBounds pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ self doLayoutIn: self layoutBounds ] Context>>handleSignal: Receiver: FullBlockClosure(BlockClosure)>>on:do: Arguments and temporary variables: exception: SubscriptOutOfBounds: 1 Receiver's instance variables: sender: RubTextScrollPane(Morph)>>computeFullBounds pc: 30 stackp: 2 method: BlockClosure>>#on:do: closureOrNil: nil receiver: [ self doLayoutIn: self layoutBounds ] SubscriptOutOfBounds(Exception)>>signal Receiver: SubscriptOutOfBounds: 1 Arguments and temporary variables: x Receiver's instance variables: messageText: '1' tag: nil signaler: an OrderedCollection() signalContext: SubscriptOutOfBounds(Exception)>>signal handlerContext: FullBlockClosure(BlockClosure)>>on:do: outerContext: nil subscript: 1 lowerBound: nil upperBound: nil SubscriptOutOfBounds class>>signalFor:lowerBound:upperBound:in: Receiver: SubscriptOutOfBounds Arguments and temporary variables: subscript: 1 lowerBound: nil upperBound: nil object: nil Receiver's instance variables: superclass: Error methodDict: a MethodDictionary(#lowerBound->SubscriptOutOfBounds>>#lowerBou[..] format: 65545 layout: a FixedLayout organization: a ClassOrganization commentSourcePointer: nil subclasses: nil name: #SubscriptOutOfBounds classPool: nil sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Kernel-Exceptions' SubscriptOutOfBounds class>>signalFor:lowerBound:upperBound: Receiver: SubscriptOutOfBounds Arguments and temporary variables: subscript: 1 lowerBound: nil upperBound: nil Receiver's instance variables: superclass: Error methodDict: a MethodDictionary(#lowerBound->SubscriptOutOfBounds>>#lowerBou[..] format: 65545 layout: a FixedLayout organization: a ClassOrganization commentSourcePointer: nil subclasses: nil name: #SubscriptOutOfBounds classPool: nil sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Kernel-Exceptions' SubscriptOutOfBounds class>>signalFor: Receiver: SubscriptOutOfBounds Arguments and temporary variables: subscript: 1 Receiver's instance variables: superclass: Error methodDict: a MethodDictionary(#lowerBound->SubscriptOutOfBounds>>#lowerBou[..] format: 65545 layout: a FixedLayout organization: a ClassOrganization commentSourcePointer: nil subclasses: nil name: #SubscriptOutOfBounds classPool: nil sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Kernel-Exceptions' OrderedCollection(Object)>>errorSubscriptBounds: Receiver: an OrderedCollection() Arguments and temporary variables: index: 1 Receiver's instance variables: array: #(nil nil nil nil nil nil nil nil nil nil) firstIndex: 1 lastIndex: 0 OrderedCollection>>at: Receiver: an OrderedCollection() Arguments and temporary variables: anInteger: 1 index: 1 Receiver's instance variables: array: #(nil nil nil nil nil nil nil nil nil nil) firstIndex: 1 lastIndex: 0 RubParagraph>>characterBlockForIndex: Receiver: a RubParagraph Arguments and temporary variables: index: 1 line: nil Receiver's instance variables: text: a Text for 'First lesson' composer: a RubTextComposer container: (0@0) corner: (230@31) drawingEnabled: false textArea: a RubEditingArea(1056363520) RubShoutStylerDecorator(RubParagraphDecorator)>>characterBlockForIndex: Receiver: a RubShoutStylerDecorator Arguments and temporary variables: index: 1 Receiver's instance variables: next: a RubCurrentLineBarDecorator styler: a SHRBTextStyler text: a Text for 'First lesson' replaceStart: 1 replaceStop: 12 RubEditingState>>markIndex:pointIndex: Receiver: a RubEditingState Arguments and temporary variables: markIndex: 1 pointIndex: 1 Receiver's instance variables: hasFocus: true undoManager: a HistoryIterator emphasisHere: an Array(a TextColor code: Color black a TextMethodLink) pointBlock: a CharacterBlock with index 1 and surface (6.0@6) corner: (13.8[..] markBlock: a CharacterBlock with index 1 and surface (6.0@6) corner: (13.80[..] startOfTyping: nil previousInterval: (1 to: 12) scrollPivot: nil textArea: a RubEditingArea(1056363520) [ self editingState markIndex: markIndex pointIndex: pointIndex ] in RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex: Receiver: a RubEditingArea(1056363520) Arguments and temporary variables: markIndex: 1 pointIndex: 1 Receiver's instance variables: bounds: (0@0) corner: (230@31) owner: a TransformWithLayoutMorph(249506816) submorphs: an Array(a RubCursor(556591616) a RubPrimarySelectionMorph(18973[..] fullBounds: nil color: Color transparent extension: a MorphExtension (913139712) [other: (announcer -> an Announcer)] model: a RubScrolledTextModel paragraph: a RubShoutStylerDecorator editor: a RubSmalltalkEditor scrollPane: a RubTextScrollPane(222716928) editingState: a RubEditingState textStyle: a TextStyle Source Code Pro textColor: nil margins: a Margin top: 6 left: 6 bottom: 6 right: 6 readOnly: false menuAllowed: nil editingMode: a RubSmalltalkScriptingMode cursor: a RubCursor(556591616) segments: nil embeddedMorphs: nil getMenuPolicy: nil mouseDownPoint: nil completionEngine: a CoCompletionEngine maxLength: nil grow: true findReplaceService: a SpRubFindReplaceService editing: false hasDragDoubleClick: false wrapped: true editorClass: RubSmalltalkEditor RubEditingArea(RubAbstractTextArea)>>handleSelectionChange: Receiver: a RubEditingArea(1056363520) Arguments and temporary variables: aBlock: [ self editingState markIndex: markIndex pointIndex: pointIndex ] prevMarkBlock: a CharacterBlock with index 1 and surface (6.0@6) corner: (1[..] prevPointBlock: a CharacterBlock with index 1 and surface (6.0@6) corner: ([..] Receiver's instance variables: bounds: (0@0) corner: (230@31) owner: a TransformWithLayoutMorph(249506816) submorphs: an Array(a RubCursor(556591616) a RubPrimarySelectionMorph(18973[..] fullBounds: nil color: Color transparent extension: a MorphExtension (913139712) [other: (announcer -> an Announcer)] model: a RubScrolledTextModel paragraph: a RubShoutStylerDecorator editor: a RubSmalltalkEditor scrollPane: a RubTextScrollPane(222716928) editingState: a RubEditingState textStyle: a TextStyle Source Code Pro textColor: nil margins: a Margin top: 6 left: 6 bottom: 6 right: 6 readOnly: false menuAllowed: nil editingMode: a RubSmalltalkScriptingMode cursor: a RubCursor(556591616) segments: nil embeddedMorphs: nil getMenuPolicy: nil mouseDownPoint: nil completionEngine: a CoCompletionEngine maxLength: nil grow: true findReplaceService: a SpRubFindReplaceService editing: false hasDragDoubleClick: false wrapped: true editorClass: RubSmalltalkEditor RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex: Receiver: a RubEditingArea(1056363520) Arguments and temporary variables: markIndex: 1 pointIndex: 1 Receiver's instance variables: bounds: (0@0) corner: (230@31) owner: a TransformWithLayoutMorph(249506816) submorphs: an Array(a RubCursor(556591616) a RubPrimarySelectionMorph(18973[..] fullBounds: nil color: Color transparent extension: a MorphExtension (913139712) [other: (announcer -> an Announcer)] model: a RubScrolledTextModel paragraph: a RubShoutStylerDecorator editor: a RubSmalltalkEditor scrollPane: a RubTextScrollPane(222716928) editingState: a RubEditingState textStyle: a TextStyle Source Code Pro textColor: nil margins: a Margin top: 6 left: 6 bottom: 6 right: 6 readOnly: false menuAllowed: nil editingMode: a RubSmalltalkScriptingMode cursor: a RubCursor(556591616) segments: nil embeddedMorphs: nil getMenuPolicy: nil mouseDownPoint: nil completionEngine: a CoCompletionEngine maxLength: nil grow: true findReplaceService: a SpRubFindReplaceService editing: false hasDragDoubleClick: false wrapped: true editorClass: RubSmalltalkEditor RubEditingArea(RubAbstractTextArea)>>recomputeSelection Receiver: a RubEditingArea(1056363520) Arguments and temporary variables: x Receiver's instance variables: bounds: (0@0) corner: (230@31) owner: a TransformWithLayoutMorph(249506816) submorphs: an Array(a RubCursor(556591616) a RubPrimarySelectionMorph(18973[..] fullBounds: nil color: Color transparent extension: a MorphExtension (913139712) [other: (announcer -> an Announcer)] model: a RubScrolledTextModel paragraph: a RubShoutStylerDecorator editor: a RubSmalltalkEditor scrollPane: a RubTextScrollPane(222716928) editingState: a RubEditingState textStyle: a TextStyle Source Code Pro textColor: nil margins: a Margin top: 6 left: 6 bottom: 6 right: 6 readOnly: false menuAllowed: nil editingMode: a RubSmalltalkScriptingMode cursor: a RubCursor(556591616) segments: nil embeddedMorphs: nil getMenuPolicy: nil mouseDownPoint: nil completionEngine: a CoCompletionEngine maxLength: nil grow: true findReplaceService: a SpRubFindReplaceService editing: false hasDragDoubleClick: false wrapped: true editorClass: RubSmalltalkEditor [ self wrapped ifTrue: [ (bounds notNil and: [ bounds width = aPoint x ]) ifTrue: [ ^ self ]. super extent: ((self paragraph withoutDecorator extentFromClientBottomRight: aPoint) max: self minimumExtent). self recomputeSelection ] ifFalse: [ super extent: aPoint ] ] in RubEditingArea(RubAbstractTextArea)>>extent: Receiver: a RubEditingArea(1056363520) Arguments and temporary variables: aPoint: (230@31) Receiver's instance variables: bounds: (0@0) corner: (230@31) owner: a TransformWithLayoutMorph(249506816) submorphs: an Array(a RubCursor(556591616) a RubPrimarySelectionMorph(18973[..] fullBounds: nil color: Color transparent extension: a MorphExtension (913139712) [other: (announcer -> an Announcer)] model: a RubScrolledTextModel paragraph: a RubShoutStylerDecorator editor: a RubSmalltalkEditor scrollPane: a RubTextScrollPane(222716928) editingState: a RubEditingState textStyle: a TextStyle Source Code Pro textColor: nil margins: a Margin top: 6 left: 6 bottom: 6 right: 6 readOnly: false menuAllowed: nil editingMode: a RubSmalltalkScriptingMode cursor: a RubCursor(556591616) segments: nil embeddedMorphs: nil getMenuPolicy: nil mouseDownPoint: nil completionEngine: a CoCompletionEngine maxLength: nil grow: true findReplaceService: a SpRubFindReplaceService editing: false hasDragDoubleClick: false wrapped: true editorClass: RubSmalltalkEditor RubEditingArea(RubAbstractTextArea)>>handleBoundsChange: Receiver: a RubEditingArea(1056363520) Arguments and temporary variables: aBlock: [ self wrapped ifTrue: [ (bounds notNil and: [ bounds w[..] oldBounds: (0@0) corner: (126@31) Receiver's instance variables: bounds: (0@0) corner: (230@31) owner: a TransformWithLayoutMorph(249506816) submorphs: an Array(a RubCursor(556591616) a RubPrimarySelectionMorph(18973[..] fullBounds: nil color: Color transparent extension: a MorphExtension (913139712) [other: (announcer -> an Announcer)] model: a RubScrolledTextModel paragraph: a RubShoutStylerDecorator editor: a RubSmalltalkEditor scrollPane: a RubTextScrollPane(222716928) editingState: a RubEditingState textStyle: a TextStyle Source Code Pro textColor: nil margins: a Margin top: 6 left: 6 bottom: 6 right: 6 readOnly: false menuAllowed: nil editingMode: a RubSmalltalkScriptingMode cursor: a RubCursor(556591616) segments: nil embeddedMorphs: nil getMenuPolicy: nil mouseDownPoint: nil completionEngine: a CoCompletionEngine maxLength: nil grow: true findReplaceService: a SpRubFindReplaceService editing: false hasDragDoubleClick: false wrapped: true editorClass: RubSmalltalkEditor RubEditingArea(RubAbstractTextArea)>>extent: Receiver: a RubEditingArea(1056363520) Arguments and temporary variables: aPoint: (230@31) Receiver's instance variables: bounds: (0@0) corner: (230@31) owner: a TransformWithLayoutMorph(249506816) submorphs: an Array(a RubCursor(556591616) a RubPrimarySelectionMorph(18973[..] fullBounds: nil color: Color transparent extension: a MorphExtension (913139712) [other: (announcer -> an Announcer)] model: a RubScrolledTextModel paragraph: a RubShoutStylerDecorator editor: a RubSmalltalkEditor scrollPane: a RubTextScrollPane(222716928) editingState: a RubEditingState textStyle: a TextStyle Source Code Pro textColor: nil margins: a Margin top: 6 left: 6 bottom: 6 right: 6 readOnly: false menuAllowed: nil editingMode: a RubSmalltalkScriptingMode cursor: a RubCursor(556591616) segments: nil embeddedMorphs: nil getMenuPolicy: nil mouseDownPoint: nil completionEngine: a CoCompletionEngine maxLength: nil grow: true findReplaceService: a SpRubFindReplaceService editing: false hasDragDoubleClick: false wrapped: true editorClass: RubSmalltalkEditor RubEditingArea(Morph)>>width: Receiver: a RubEditingArea(1056363520) Arguments and temporary variables: aNumber: 230.0 Receiver's instance variables: bounds: (0@0) corner: (230@31) owner: a TransformWithLayoutMorph(249506816) submorphs: an Array(a RubCursor(556591616) a RubPrimarySelectionMorph(18973[..] fullBounds: nil color: Color transparent extension: a MorphExtension (913139712) [other: (announcer -> an Announcer)] model: a RubScrolledTextModel paragraph: a RubShoutStylerDecorator editor: a RubSmalltalkEditor scrollPane: a RubTextScrollPane(222716928) editingState: a RubEditingState textStyle: a TextStyle Source Code Pro textColor: nil margins: a Margin top: 6 left: 6 bottom: 6 right: 6 readOnly: false menuAllowed: nil editingMode: a RubSmalltalkScriptingMode cursor: a RubCursor(556591616) segments: nil embeddedMorphs: nil getMenuPolicy: nil mouseDownPoint: nil completionEngine: a CoCompletionEngine maxLength: nil grow: true findReplaceService: a SpRubFindReplaceService editing: false hasDragDoubleClick: false wrapped: true editorClass: RubSmalltalkEditor RubTextScrollPane>>fitScrollTargetWidth Receiver: a RubTextScrollPane(222716928) Arguments and temporary variables: x Receiver's instance variables: bounds: (5.0@46.0) corner: (235.0@93.0) owner: a RubScrolledTextMorph(673079296) submorphs: an Array(a TransformWithLayoutMorph(249506816)) fullBounds: (5@46) corner: (235@93) color: Color transparent extension: a MorphExtension (499771392) [other: (announcer -> an Announcer)] scroller: a TransformWithLayoutMorph(249506816) hScrollbar: a RubScrollBar(853002752) vScrollbar: a RubScrollBar(890698240) drawFocusBorder: true --- The full stack --- [:err | "Handle a drawing error" | errCtx errMorph | errCtx := thisContext. [ errCtx := errCtx sender. "Search the sender chain to find the morph causing the problem" [errCtx notNil and:[(errCtx receiver isMorph) not]] whileTrue:[errCtx := errCtx sender]. "If we're at the root of the context chain then we have a fatal drawing problem" errCtx ifNil:[^self handleFatalDrawingError: err description]. errMorph := errCtx receiver. "If the morph causing the problem has already the #drawError flag set, then search for the next morph above in the caller chain." errMorph hasProperty: #errorOnDraw ] whileTrue. errMorph setProperty: #errorOnDraw toValue: true. "Install the old error handler, so we can re-raise the error" err signal. ] in WorldState>>displayWorldSafely: FullBlockClosure(BlockClosure)>>cull: [:ex | errorHandlerBlock cull: ex] in FullBlockClosure(BlockClosure)>>onErrorDo: FullBlockClosure(BlockClosure)>>cull: Context>>evaluateSignal: Context>>handleSignal: SubscriptOutOfBounds(Exception)>>pass [ :ex | "This should do it unless you don't screw up the bounds" fullBounds := bounds. ex pass ] in SystemWindow(Morph)>>computeFullBounds FullBlockClosure(BlockClosure)>>cull: Context>>evaluateSignal: Context>>handleSignal: SubscriptOutOfBounds(Exception)>>pass [ :ex | "This should do it unless you don't screw up the bounds" fullBounds := bounds. ex pass ] in RubScrolledTextMorph(Morph)>>computeFullBounds FullBlockClosure(BlockClosure)>>cull: Context>>evaluateSignal: Context>>handleSignal: SubscriptOutOfBounds(Exception)>>pass [ :ex | "This should do it unless you don't screw up the bounds" fullBounds := bounds. ex pass ] in RubTextScrollPane(Morph)>>computeFullBounds FullBlockClosure(BlockClosure)>>cull: Context>>evaluateSignal: Context>>handleSignal: SubscriptOutOfBounds(Exception)>>signal SubscriptOutOfBounds class>>signalFor:lowerBound:upperBound:in: SubscriptOutOfBounds class>>signalFor:lowerBound:upperBound: SubscriptOutOfBounds class>>signalFor: OrderedCollection(Object)>>errorSubscriptBounds: OrderedCollection>>at: RubParagraph>>characterBlockForIndex: RubShoutStylerDecorator(RubParagraphDecorator)>>characterBlockForIndex: RubEditingState>>markIndex:pointIndex: [ self editingState markIndex: markIndex pointIndex: pointIndex ] in RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex: RubEditingArea(RubAbstractTextArea)>>handleSelectionChange: RubEditingArea(RubAbstractTextArea)>>markIndex:pointIndex: RubEditingArea(RubAbstractTextArea)>>recomputeSelection [ self wrapped ifTrue: [ (bounds notNil and: [ bounds width = aPoint x ]) ifTrue: [ ^ self ]. super extent: ((self paragraph withoutDecorator extentFromClientBottomRight: aPoint) max: self minimumExtent). self recomputeSelection ] ifFalse: [ super extent: aPoint ] ] in RubEditingArea(RubAbstractTextArea)>>extent: RubEditingArea(RubAbstractTextArea)>>handleBoundsChange: RubEditingArea(RubAbstractTextArea)>>extent: RubEditingArea(Morph)>>width: RubTextScrollPane>>fitScrollTargetWidth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RubTextScrollPane>>updateScrollbars RubTextScrollPane(GeneralScrollPaneMorph)>>doLayoutIn: [ self doLayoutIn: self layoutBounds ] in RubTextScrollPane(Morph)>>computeFullBounds FullBlockClosure(BlockClosure)>>on:do: RubTextScrollPane(Morph)>>computeFullBounds RubTextScrollPane(Morph)>>fullBounds [:m | | subBox | (m visible) ifTrue: [ subBox := m fullBounds. box ifNil:[box := subBox copy] ifNotNil:[box := box quickMerge: subBox]]] in RubScrolledTextMorph(Morph)>>submorphBounds Array(SequenceableCollection)>>do: RubScrolledTextMorph(Morph)>>submorphBounds RubScrolledTextMorph(Morph)>>privateFullBounds RubScrolledTextMorph(Morph)>>doLayoutIn: [ self doLayoutIn: self layoutBounds ] in RubScrolledTextMorph(Morph)>>computeFullBounds FullBlockClosure(BlockClosure)>>on:do: RubScrolledTextMorph(Morph)>>computeFullBounds RubScrolledTextMorph(Morph)>>fullBounds [:m | | subBox | (m visible) ifTrue: [ subBox := m fullBounds. box ifNil:[box := subBox copy] ifNotNil:[box := box quickMerge: subBox]]] in SystemWindow(Morph)>>submorphBounds Array(SequenceableCollection)>>do: SystemWindow(Morph)>>submorphBounds SystemWindow(Morph)>>privateFullBounds SystemWindow(Morph)>>doLayoutIn: [ self doLayoutIn: self layoutBounds ] in SystemWindow(Morph)>>computeFullBounds FullBlockClosure(BlockClosure)>>on:do: SystemWindow(Morph)>>computeFullBounds SystemWindow(Morph)>>fullBounds [ :m | m fullBounds ] in NullWorldRenderer(AbstractWorldRenderer)>>displayWorldState:ofWorld: Array(SequenceableCollection)>>do: NullWorldRenderer(AbstractWorldRenderer)>>displayWorldState:ofWorld: WorldState>>displayWorld: WorldMorph>>displayWorld [aWorld displayWorld] in WorldState>>displayWorldSafely: FullBlockClosure(BlockClosure)>>on:do: FullBlockClosure(BlockClosure)>>onErrorDo: WorldState>>displayWorldSafely: WorldState>>doOneCycleFor: WorldMorph>>doOneCycleNow WorldMorph>>doOneCycle [ | extraWorldsToDraw | extraWorldsToDraw := ExtraWorldListMutex critical: [ self extraWorldList ]. extraWorldsToDraw do: [ :world | world doOneCycle ]. (self currentWorld isNotNil and: [ (extraWorldsToDraw includes: self currentWorld) not ]) ifTrue: [ self currentWorld doOneCycle ] ] in WorldMorph class>>doOneCycle FullBlockClosure(BlockClosure)>>ensure: WorldState class>>doDrawCycleWith: WorldMorph class>>doOneCycle MorphicRenderLoop>>doOneCycle MorphicRenderLoop>>doOneCycleWhile: [ MorphicRenderLoop new doOneCycleWhile: [ true ] ] in MorphicUIManager>>spawnNewProcess [self value. "IMPORTANT: Do not step over next line of code. See method comments for details" Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------------------------------------------------------- Processes and their stacks: Process: a Process in DelayMicrosecondTicker>>waitForUserSignalled:orExpired: stack: DelayMicrosecondTicker>>waitForUserSignalled:orExpired: [ [runTimerEventLoop] whileTrue: [ |nowTick| "Warning! Stepping the following line may lock the Image. Use or ." ticker waitForUserSignalled: timingSemaphore orExpired: activeDelay. "Invoke the api back-ends, which set the transfer-variable to nil" suspendSemaphore ifNotNil: [ self suspendAtTimingPriority ]. delayToStart ifNotNil: [ self scheduleAtTimingPriority ]. delayToStop ifNotNil: [ self unscheduleAtTimingPriority ]. "Signal any expired delays" nowTick := ticker nowTick. [ activeDelay notNil and: [nowTick >= activeDelay resumptionTick] ] whileTrue: [ activeDelay timingPrioritySignalExpired. activeDelay := suspendedDelays removeFirstOrNil ]. ] ] in DelaySemaphoreScheduler(DelayBasicScheduler)>>runBackendLoopAtTimingPriority FullBlockClosure(BlockClosure)>>ensure: DelaySemaphoreScheduler(DelayBasicScheduler)>>runBackendLoopAtTimingPriority [ self runBackendLoopAtTimingPriority ] in DelaySemaphoreScheduler(DelayBasicScheduler)>>startTimerEventLoopPriority: [self value. "IMPORTANT: Do not step over next line of code. See method comments for details" Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in nil stack: Array(SequenceableCollection)>>do: [:logger | logger nextPutAll: 'Processes and their stacks: ';cr. Process allInstances do: [:each | | ctx | logger nextPutAll: 'Process: '; print: each; cr; nextPutAll: ' stack:'; cr; cr. ctx := each isActiveProcess ifTrue: [ thisContext sender ] ifFalse: [ each suspendedContext ]. ctx ifNotNil: [ (ctx stackOfSize: 20) do: [:s | logger print: s; cr ]]. logger nextPutAll: '------------------------------'; cr; cr. ]] in [ Smalltalk logError: aString inContext: aContext. " Print stacks of all current processes " Smalltalk logDuring: [:logger | logger nextPutAll: 'Processes and their stacks: ';cr. Process allInstances do: [:each | | ctx | logger nextPutAll: 'Process: '; print: each; cr; nextPutAll: ' stack:'; cr; cr. ctx := each isActiveProcess ifTrue: [ thisContext sender ] ifFalse: [ each suspendedContext ]. ctx ifNotNil: [ (ctx stackOfSize: 20) do: [:s | logger print: s; cr ]]. logger nextPutAll: '------------------------------'; cr; cr. ]]. ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage: [ logStream := self openLog. aMonadicBlock value: logStream. ] in SmalltalkImage>>logDuring: FullBlockClosure(BlockClosure)>>ensure: SmalltalkImage>>logDuring: [ Smalltalk logError: aString inContext: aContext. " Print stacks of all current processes " Smalltalk logDuring: [:logger | logger nextPutAll: 'Processes and their stacks: ';cr. Process allInstances do: [:each | | ctx | logger nextPutAll: 'Process: '; print: each; cr; nextPutAll: ' stack:'; cr; cr. ctx := each isActiveProcess ifTrue: [ thisContext sender ] ifFalse: [ each suspendedContext ]. ctx ifNotNil: [ (ctx stackOfSize: 20) do: [:s | logger print: s; cr ]]. logger nextPutAll: '------------------------------'; cr; cr. ]]. ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage: FullBlockClosure(BlockClosure)>>ensure: NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage: NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction: SubscriptOutOfBounds(Exception)>>unhandledErrorAction UnhandledError>>defaultAction UndefinedObject>>handleSignal: UnhandledError(Exception)>>signal UnhandledError class>>signalForException: SubscriptOutOfBounds(Exception)>>raiseUnhandledError SubscriptOutOfBounds(Exception)>>defaultAction UndefinedObject>>handleSignal: SubscriptOutOfBounds(Exception)>>signal [:err | "Handle a drawing error" | errCtx errMorph | errCtx := thisContext. [ errCtx := errCtx sender. "Search the sender chain to find the morph causing the problem" [errCtx notNil and:[(errCtx receiver isMorph) not]] whileTrue:[errCtx := errCtx sender]. "If we're at the root of the context chain then we have a fatal drawing problem" errCtx ifNil:[^self handleFatalDrawingError: err description]. errMorph := errCtx receiver. "If the morph causing the problem has already the #drawError flag set, then search for the next morph above in the caller chain." errMorph hasProperty: #errorOnDraw ] whileTrue. errMorph setProperty: #errorOnDraw toValue: true. "Install the old error handler, so we can re-raise the error" err signal. ] in WorldState>>displayWorldSafely: FullBlockClosure(BlockClosure)>>cull: ------------------------------ Process: a Process in ProcessorScheduler class>>idleProcess stack: ProcessorScheduler class>>idleProcess [self idleProcess] in ProcessorScheduler class>>startUp [self value. "IMPORTANT: Do not step over next line of code. See method comments for details" Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in WeakArray class>>finalizationProcess stack: WeakArray class>>finalizationProcess [self finalizationProcess] in WeakArray class>>restartFinalizationProcess [self value. "IMPORTANT: Do not step over next line of code. See method comments for details" Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in [ testCompleted := true. watchDogSemaphore signal. "signal that test case is completed" self cleanUpAfterTest ] in TestExecutionEnvironment>>runTestCase: stack: [ testCompleted := true. watchDogSemaphore signal. "signal that test case is completed" self cleanUpAfterTest ] in TestExecutionEnvironment>>runTestCase: FullBlockClosure(BlockClosure)>>ensure: TestExecutionEnvironment>>runTestCase: CurrentExecutionEnvironment class>>runTestCase: PharoTutorialGoOnMockTutorialTest(TestCase)>>runCaseManaged [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] in [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: FullBlockClosure(BlockClosure)>>on:do: [ [aTestCase runCaseManaged. aTestCase shouldPass ifTrue: [ self recordPassOf: aTestCase ] ifFalse: [ self recordUnexpectedPassOf: aTestCase ] ] on: Exception do: [ :exc | exc recordResultOf: aTestCase inHDTestReport: self ] ] in HDTestReport>>runCase: Time class>>microsecondsToRun: Time class>>millisecondsToRun: FullBlockClosure(BlockClosure)>>timeToRun [ time := aBlock timeToRun ] in HDTestReport>>reportTestCase:runBlock: FullBlockClosure(BlockClosure)>>ensure: HDTestReport>>newLogDuring: HDTestReport>>reportTestCase:runBlock: HDTestReport>>runCase: PharoTutorialGoOnMockTutorialTest(TestCase)>>run: [ :each | each run: self ] in [ suite tests do: [ :each | each run: self ] ] in HDTestReport>>runAll OrderedCollection>>do: [ suite tests do: [ :each | each run: self ] ] in HDTestReport>>runAll ------------------------------ Process: a Process in [ [ true ] whileTrue: [ semaphore wait. [self executeCallback: self nextPendingCallback] on: Exception fork: [:ex | ex pass ] ] ] in TFCallbackQueue>>forkCallbackProcess stack: [ [ true ] whileTrue: [ semaphore wait. [self executeCallback: self nextPendingCallback] on: Exception fork: [:ex | ex pass ] ] ] in TFCallbackQueue>>forkCallbackProcess [self value. "IMPORTANT: Do not step over next line of code. See method comments for details" Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in Process>>endProcess stack: Process>>endProcess ------------------------------ Process: a Process in SmalltalkImage>>lowSpaceWatcher stack: SmalltalkImage>>lowSpaceWatcher [ self lowSpaceWatcher ] in SmalltalkImage>>installLowSpaceWatcher [self value. "IMPORTANT: Do not step over next line of code. See method comments for details" Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess [root insertSender: thisContext. currentContext jump] in [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateRealActive] in Process>>on:do: FullBlockClosure(BlockClosure)>>on:do: [ [root insertSender: thisContext. currentContext jump] on: exception do: handlerAction. Processor terminateRealActive] in Process>>on:do: ------------------------------ Process: a Process in Process>>endProcess stack: Process>>endProcess ------------------------------ Process: a Process in Process>>endProcess stack: Process>>endProcess ------------------------------ Process: a Process in Process>>endProcess stack: Process>>endProcess ------------------------------ Process: a Process in Process>>endProcess stack: Process>>endProcess ------------------------------ Process: a Process in Process>>endProcess stack: Process>>endProcess ------------------------------ Process: a Process in Process>>endProcess stack: Process>>endProcess ------------------------------ Process: a Process in TestExecutionEnvironment>>watchDogLoop stack: TestExecutionEnvironment>>watchDogLoop [self watchDogLoop] in TestExecutionEnvironment>>startWatchDog [self value. "IMPORTANT: Do not step over next line of code. See method comments for details" Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess ------------------------------ Process: a Process in Process>>endProcess stack: Process>>endProcess ------------------------------ Process: a Process in Process>>endProcess stack: Process>>endProcess ------------------------------ Process: a Process in Process>>endProcess stack: Process>>endProcess ------------------------------