[Etoys] unable to keep current projext: duplicate selector
Markus Schlager
m.slg at gmx.de
Wed Dec 10 12:07:57 EST 2008
On Sat, 15 Nov 2008, Yoshiki Ohshima wrote:
>> Can you send us (Scott, Bert, Ted, Takashi and me) the project?
>
> Or the better is that you save the image (Alt-shift-w, "save as...")
> and give us the image and changes...
>
Hi Yoshiki,
Recently this error showed up once more and I was able to save the whole
image. You can download image and changes at
<http://signalbscw.tcs.informatik.uni-muenchen.de/pub/bscw.cgi/0/211329>
The project is called 'patricks stern am besten'. As far as I figured out,
the script causing the problem is 'tropfen>>a'. Possible issues may be
a player used within the script that got deleted, or a variable of
'tropfen' having had the same name, maybe a unicode-issue with German
umlauts?
Attached is the SqueakDebug.log when I start the image, open a viewer for
'tropfen' and try to open a script-editor for the Script 'tropfen>>a' by
dragging the tile from the viewer into the world. After that I left squeak
(all on ubuntu hardy).
Markus
-------------- next part --------------
=========== SqueakDebug.log START ==========
Error: Invalid utf8 input detected
10 December 2008 6:05:35 pm
VM: unix - a SmalltalkImage
Image: Squeakland-OLPC [Letztes Update: #2139]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/ubuntu/Desktop/My Squeak
Trusted Dir /home/ubuntu/Desktop/secure
Untrusted Dir /home/ubuntu/Desktop/My Squeak
UTF8TextConverter(Object)>>error:
Receiver: an UTF8TextConverter
Arguments and temporary variables:
t1: 'Invalid utf8 input detected'
Receiver's instance variables:
acceptingEncodings: nil
currentCharSize: nil
forceToEncodingTag: nil
UTF8TextConverter>>errorMalformedInput
Receiver: an UTF8TextConverter
Arguments and temporary variables:
Receiver's instance variables:
acceptingEncodings: nil
currentCharSize: nil
forceToEncodingTag: nil
UTF8TextConverter>>nextFromStream:
Receiver: an UTF8TextConverter
Arguments and temporary variables:
t1: a ReadStream '?ffentlich'
t2: $?
t3: 133
t4: $f
t5: 102
t6: nil
t7: $f
t8: 102
t9: nil
t10: nil
Receiver's instance variables:
acceptingEncodings: nil
currentCharSize: nil
forceToEncodingTag: nil
ByteString(String)>>convertFromWithConverter:
Receiver: '?ffentlich'
Arguments and temporary variables:
t1: an UTF8TextConverter
t2: a ReadStream '?ffentlich'
t3: a WriteStream ''
t4: nil
Receiver's instance variables:
'?ffentlich'
--- The full stack ---
UTF8TextConverter(Object)>>error:
UTF8TextConverter>>errorMalformedInput
UTF8TextConverter>>nextFromStream:
ByteString(String)>>convertFromWithConverter:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FilePath>>pathName:isEncoded:
FilePath class>>pathName:isEncoded:
DirectoryEntry>>convertFromSystemName
[] in UnixFileDirectory(FileDirectory)>>directoryContentsFor: {[:t7 | t7 convertFromSystemName]}
Array(SequenceableCollection)>>collect:
UnixFileDirectory(FileDirectory)>>directoryContentsFor:
UnixFileDirectory(FileDirectory)>>entries
UnixFileDirectory(FileDirectory)>>directoryNames
UnixFileDirectory(FileDirectory)>>directoryExists:
UnixFileDirectory>>directoryExists:
UnixFileDirectory(FileDirectory)>>assureExistenceOfPath:
UnixFileDirectory(FileDirectory)>>assureExistenceOfPath:
UnixFileDirectory(FileDirectory)>>assureExistence
FileDirectory class>>startUp
FileDirectory class(Behavior)>>startUp:
[] in SystemDictionary>>send:toClassesNamedIn:with: {[:t6 | t5 := self at: t6 ifAbsent: []. t5 ifNil: [t4 add: t6] ...]}
OrderedCollection>>do:
SystemDictionary>>send:toClassesNamedIn:with:
SystemDictionary>>processStartUpList:
SmalltalkImage>>snapshot:andQuit:embedded:
SmalltalkImage>>snapshot:andQuit:
SmalltalkImage>>saveImageInFileNamed:
SmalltalkImage>>saveAs
TheWorldMenu>>doMenuItem:with:
[] in MenuItemMorph>>invokeWithEvent: {[(t2 := selector numArgs) = 0 ifTrue: [target perform: selector] ifFalse...]}
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
MenuItemMorph>>invokeWithEvent:
MenuItemMorph>>mouseUp:
MenuItemMorph>>handleMouseUp:
MouseButtonEvent>>sentTo:
MenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self. ActiveEvent := t1. t4 := t2 handleFocusEvent: (t1...]}
[] in PasteUpMorph>>becomeActiveDuring: {[t1 value]}
BlockContext>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor: {[:t3 | ActiveHand := t3. t3 processEvents. t2 := t2 or: [t3 isCapturi...]}
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]}
-- and more not shown --=========== SqueakDebug.log END ==========
=========== SqueakDebug.log START ==========
Error: duplicate selector
10 December 2008 6:06:28 pm
VM: unix - a SmalltalkImage
Image: Squeakland-OLPC [Letztes Update: #2139]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/ubuntu/Desktop/My Squeak
Trusted Dir /home/ubuntu/Desktop/secure
Untrusted Dir /home/ubuntu/Desktop/My Squeak
UniclassScript(Object)>>error:
Receiver: A UniclassScript - selector: #a scriptEditor: nil
Arguments and temporary variables:
t1: 'duplicate selector'
Receiver's instance variables:
authoringStamp: ' 12/9/2008 11:58'
properties: nil
elementSymbol: nil
naturalLanguageTranslations: nil
selector: #a
argumentVariables: an OrderedCollection()
resultSpecification: nil
receiverType: nil
attributeKeywords: an OrderedCollection()
defaultStatus: #normal
playerClass: Player136123
currentScriptEditor: nil
formerScriptingTiles: nil
isTextuallyCoded: false
lastSourceString: nil
UniclassScript>>instantiatedScriptEditorForPlayer:
Receiver: A UniclassScript - selector: #a scriptEditor: nil
Arguments and temporary variables:
t1: a Player136123 (2052) named tropfen
t2: nil
Receiver's instance variables:
authoringStamp: ' 12/9/2008 11:58'
properties: nil
elementSymbol: nil
naturalLanguageTranslations: nil
selector: #a
argumentVariables: an OrderedCollection()
resultSpecification: nil
receiverType: nil
attributeKeywords: an OrderedCollection()
defaultStatus: #normal
playerClass: Player136123
currentScriptEditor: nil
formerScriptingTiles: nil
isTextuallyCoded: false
lastSourceString: nil
Player136123(Player)>>scriptEditorFor:
Receiver: a Player136123 (2052) named tropfen
Arguments and temporary variables:
t1: #a
t2: nil
Receiver's instance variables:
dependents: nil
costume: a SketchMorph<tropfen>(784)
costumes: an OrderedCollection(a SketchMorph<tropfen>(3974) a SketchMorph<tropf...etc...
tropfensalter: 299
alter: 300
PhraseTileMorph>>morphToDropInPasteUp:
Receiver: a PhraseTileMorph(2264)
Arguments and temporary variables:
t1: a PasteUpMorph<Welt>(1431) [world]
t2: a Player136123 (2052) named tropfen
t3: #a
t4: nil
t5: 577.0 at 197.0
t6: nil
t7: nil
Receiver's instance variables:
bounds: 577.0 at 197.0 corner: 652.0 at 229.0
owner: a HandMorph<Hand>(2155)
submorphs: #(a TilePadMorph(1541) type=#Player a TileMorph(1872) - #operator op...etc...
fullBounds: 577.0 at 197.0 corner: 652.0 at 229.0
color: Color transparent
extension: a MorphExtensionPlus (2198) [other: (formerPosition -> 973 at 289) (mi...etc...
borderWidth: 0
borderColor: Color black
resultType: #unknown
brightenedOnEnter: nil
userScriptSelector: #a
justGrabbedFromViewer: true
vocabulary: nil
vocabularySymbol: #eToy
--- The full stack ---
UniclassScript(Object)>>error:
UniclassScript>>instantiatedScriptEditorForPlayer:
Player136123(Player)>>scriptEditorFor:
PhraseTileMorph>>morphToDropInPasteUp:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PasteUpMorph>>morphToDropFrom:
PasteUpMorph>>acceptDroppingMorph:event:
PasteUpMorph(Morph)>>handleDropMorph:
DropEvent>>sentTo:
PasteUpMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDropEvent:with:
MorphicEventDispatcher>>dispatchEvent:with:
PasteUpMorph(Morph)>>processEvent:using:
PasteUpMorph>>processEvent:using:
PasteUpMorph(Morph)>>processEvent:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendEvent:focus:
HandMorph>>dropMorph:event:
[] in HandMorph>>dropMorphs: {[:t2 | self dropMorph: t2 event: t1]}
Array(SequenceableCollection)>>reverseDo:
HandMorph(Morph)>>submorphsReverseDo:
HandMorph>>dropMorphs:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor: {[:t3 | ActiveHand := t3. t3 processEvents. t2 := t2 or: [t3 isCapturi...]}
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]}
=========== SqueakDebug.log END ==========
More information about the Etoys
mailing list