[BUG] Squeak 3.7 5988 Full - Object Catalog - Network DNU

Doug Way dway at mailcan.com
Wed Sep 8 20:41:26 UTC 2004


Thanks for testing.

This bug doesn't seem to happen on Mac OS X (3.7.4 carbon vm), so I'm 
guessing it might be Windows-related.  (If someone on a unix/linux vm 
could test that might also help...)

Possibly it could even be the lack of the DosFileDirFullName fix which 
Brad Fuller just mentioned.  Could you try loading that fix and trying 
again?  It was posted by Ned Konz on July 18, it should be available in 
the BFAV or from the squeak-dev archives.

I'd be reluctant to add such a fix at this late stage, but if it is the 
cause of this problem, and the DosFileDirFullName problem did not exist 
in 3.6, it might be important enough to tack on to the 3.7 final 
stream.  (As evidenced by two different people posting about the same 
bug when asked to test today.)

- Doug


On Wednesday, September 8, 2004, at 01:12 PM, Thomas A Petersen wrote:

> Greetings fellow Squeakers
>
> The   Squeak3.7-5988-full.image  looks really great!
> The Smalltalk intro is excellent. Things appear to work very well.
>
> However, I found a way to get a DNU that curious new users will 
> stumble on
> too easily:
>
> 1.  Open the image
> 2.  Click the blue widgets flap and drag out an Object Catalog
> 3.  Click the menu button labeled "Network"
> 4.  You will discover you can't dismiss the DNU, it comes right back. 
> The
> debug log suggests that there is nothing in the category.  So the 
> container
> is nil.
> 5.  Pick any other category button in the Object Catalog and then you 
> will
> be able to dismiss the DNU.
>
> Hope this helps in improving things,
> tap
>
> P.S. Here is the SqueakDebug log.
>
> ---- begin log -------
>
> Unwind error during termination
> 8 September 2004 1:07:06 pm
>
> VM: Win32 - a SmalltalkImage
> Image: Squeak3.7 [latest update: #5988]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir C:\Squeak
> Trusted Dir C:\Squeak\tpeterse
> Untrusted Dir C:\My Squeak\tpeterse
>
> UndefinedObject(Object)>>doesNotUnderstand: #close
>       Receiver: nil
>       Arguments and temporary variables:
>             aMessage:   close
>       Receiver's instance variables:
> nil
> [] in IRCErrorLog class>>log:named: {[fStream close]}
>       Arguments and temporary variables:
>             aString:    'Tracing turned OFF'
>             logName:    'TRACE'
>             dir:  DosFileDirectory on 'C:\Squeak\irc\errors'
>             fName:      'TRACE.txt'
>             fStream:    nil
>
> MethodContext(ContextPart)>>resume:
>       Receiver: BlockContext>>on:do:
>       Arguments and temporary variables:
>             value:      Project
>             ctxt:       BlockContext>>ensure:
>             unwindBlock:      [] in IRCErrorLog class>>log:named: 
> {[fStream
> close]}
>       Receiver's instance variables:
>             sender:     nil
>             pc:   nil
>             stackp:     3
>             method:     a CompiledMethod (1017)
>             receiverMap:      nil
>             receiver:   [] in ContextPart class>>contextOn:do: {[chain 
> :=
> thisContext sender ...etc...
>
> BlockContext>>ensure:
>       Receiver: [] in IRCErrorLog class>>log:named: {[fStream := self
> logStreamNamed: fName existsIn: dir....etc...
>       Arguments and temporary variables:
>             aBlock:     nil
>             returnValue:      nil
>             b:    nil
>       Receiver's instance variables:
>             sender:     nil
>             pc:   nil
>             stackp:     0
>             nargs:      0
>             startpc:    50
>             home:       IRCErrorLog class>>log:named:
>
>
> --- The full stack ---
> UndefinedObject(Object)>>doesNotUnderstand: #close
> [] in IRCErrorLog class>>log:named: {[fStream close]}
> MethodContext(ContextPart)>>resume:
> BlockContext>>ensure:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> IRCErrorLog class>>log:named:
> IRCErrorLog class>>log:forClass:
> IRCConnection class>>tracePrivate:
> IRCConnection class>>tracing:
> IRCConnection>>initialize
> IRCConnection class(Behavior)>>new
> IRCeMorph>>setupConnection
> IRCeMorph>>initialize
> IRCeMorph(Morph)>>initializeToStandAlone
> IRCeMorph class(Morph class)>>newStandAlone
> [] in PartsBin class>>thumbnailForQuad: {[formToThumbnail := (aQuint 
> size
>> = 5      and: [aQuint fifth notNil])     i...]}
> Dictionary>>at:ifAbsent:
> PartsBin class>>thumbnailForQuad:
> [] in PartsBin>>listDirection:quadList: {[:tuple |  aClass := 
> Smalltalk at:
> tuple first.  aButton := IconicButton new...]}
> SortedCollection(OrderedCollection)>>do:
> PartsBin>>listDirection:quadList:
> ObjectsTool>>installQuads:fromButton:
> ObjectsTool>>showCategory:fromButton:
> [] in SimpleButtonMorph>>doButtonAction {[target perform: 
> actionSelector
> withArguments: arguments]}
> BlockContext>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> SimpleButtonMorph>>doButtonAction
> SimpleButtonMorph>>mouseDown:
> SimpleButtonMorph(Morph)>>handleMouseDown:
> MouseButtonEvent>>sentTo:
> SimpleButtonMorph(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> SimpleButtonMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> AlignmentMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> ObjectsTool(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> PasteUpMorph(Morph)>>processEvent:using:
> PasteUpMorph>>processEvent:using:
> PasteUpMorph(Morph)>>processEvent:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendMouseEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h
> processEvents.  capturingGesture := capturingGest...]}
> 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]}
>
>
> ---- end log ---------
>
>




More information about the Squeak-dev mailing list