[BUG][Monticello]String(Object)>>doesNotUnderstand: #position

Avi Bryant avi at beta4.com
Mon Mar 8 23:18:04 UTC 2004


This is related to a recent fix that went into 3.7a.  When I get home 
tonight I'll release a new version of MC that takes care of this.

On Mar 8, 2004, at 6:24 AM, rrobbes at info.unicaen.fr wrote:

> While trying to load a package I have made in another image, I
> encoutered the following bug :
> This seems to happen when a class has a comment (so you want us to
> comment squeak,
> but we can't load commented classes ? ;-) ).
> This seems to happen in MCStReader >> commentStampFor: aPseudoClass
>
> commentStampFor: aPseudoClass
> 	| comment |
> 	comment _ aPseudoClass organization classComment.
> 	^ comment = ''
> 		ifFalse: [comment stamp]
> 		
> An instance of ChangeRecord is compared to a String.
> doing :
> ^ comment asString = ''
> 		ifFalse: [comment stamp]
> 		
> seems to solve the problem
>
> I'm not a long-time monticello user, so excuse me if this bug is
> allready corrected ...
> (I heard of a bug looking like this one earlier, but I seem to have the
> latest version of
> monticello. Correct me if i'm wrong)
>
> 	Romain
> 	
> As allways, here's the stack trace :
>
> 8 March 2004 3:11:19 pm
>
> VM: Mac OS - a SmalltalkImage
> Image: Squeak3.7alpha [latest update: #5762]
>
> String(Object)>>doesNotUnderstand: #position
> 	Receiver: ''
> 	Arguments and temporary variables:
> 		aMessage: 	position
> 	Receiver's instance variables:
> ''
>
> ChangeRecord>>=
> 	Receiver: a ChangeRecord
> 	Arguments and temporary variables:
> 		anotherChangeRecord: 	''
> 	Receiver's instance variables:
> 		file: 	a ReadStream '!!
>
> SystemOrganization addCategory: #Assertions!
>
> TestCase ...etc...
> 		position: 	2779
> 		type: 	#classComment
> 		class: 	#AssertionFailedError
> 		category: 	nil
> 		meta: 	false
> 		stamp: 	'rr 3/8/2004 13:52'
>
> MCStReader>>commentStampFor:
> 	Receiver: a MCStReader
> 	Arguments and temporary variables:
> 		aPseudoClass: 	a PseudoClass(#AssertionFailedError)
> 		comment: 	a ChangeRecord
> 	Receiver's instance variables:
> 		stream: 	a RWBinaryOrTextStream 'SystemOrganization addCategory:
> #Assertions!
>
> T...etc...
> 		definitions: 	an OrderedCollection()
>
> MCStReader>>DoItIn:
> 	Receiver: a MCStReader
> 	Arguments and temporary variables:
> 		aPseudoClass: 	MCStReader>>classDefinitionFrom:
> 	Receiver's instance variables:
> 		stream: 	a RWBinaryOrTextStream 'SystemOrganization addCategory:
> #Assertions!
>
> T...etc...
> 		definitions: 	an OrderedCollection()
>
>
> --- The full stack ---
> String(Object)>>doesNotUnderstand: #position
> ChangeRecord>>=
> MCStReader>>commentStampFor:
> MCStReader>>DoItIn:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection {[rcvr class
> evaluatorClass new   evaluate: self selection string   in: ctxt ...]}
> BlockContext>>on:do:
> TextMorphEditor(ParagraphEditor)>>evaluateSelection
> TextMorphEditor(ParagraphEditor)>>inspectIt
> TextMorphEditor>>inspectIt:
> TextMorphEditor(ParagraphEditor)>>dispatchOnCharacter:with:
> TextMorphEditor>>dispatchOnCharacter:with:
> TextMorphEditor(ParagraphEditor)>>readKeyboard
> TextMorphEditor>>readKeyboard
> [] in TextMorphForEditView(TextMorph)>>keyStroke: {[editor
> readKeyboard]}
> TextMorphForEditView(TextMorph)>>handleInteraction:fromEvent:
> TextMorphForEditView>>handleInteraction:fromEvent:
> TextMorphForEditView(TextMorph)>>keyStroke:
> TextMorphForEditView>>keyStroke:
> TextMorphForEditView(TextMorph)>>handleKeystroke:
> KeyboardEvent>>sentTo:
> TextMorphForEditView(Morph)>>handleEvent:
> TextMorphForEditView(Morph)>>handleFocusEvent:
> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
> ActiveEvent := anEvent.  result := focusHolder     han...]}
> PasteUpMorph>>becomeActiveDuring:
> HandMorph>>sendFocusEvent:to:clear:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendKeyboardEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h
> processEvents.  h isGenieRecognizing   ifTrue: [r...]}
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> PasteUpMorph>>doOneCycle
> [] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor
> yield.  false] whileFalse.  nil]}
> [] in BlockContext>>newProcess {[self value.  Processor
> terminateActive]}
>




More information about the Squeak-dev mailing list