[Etoys] unable to keep current projext: duplicate selector

Markus Schlager m.slg at gmx.de
Thu Nov 13 16:46:06 EST 2008


Hi all,

Using etoys in class (11th grade in Germany) on Linux (ubuntu gutsy) 
several pupils had the problem not to be able to save their porject due to 
an 'error: duplicate selector'.

This error shows up as well, when they are dragging a 'players'-tool from 
the supplies flap into the world.

Some debug-logs for these two situations are attached.

I'm not sure, what they did wrong. Since several pupils had this problem 
already, this might be a rather common mistake. Maybe they had a variable 
and a script with the same name, or they deleted a script and created 
another one having the same name. Unfortunately I don't know what they 
did, and they weren't able to tell me what they had done that might cause 
the problem.

Any ideas?

Markus
-----------------------------------------------
  Markus Schlager                  m.slg at gmx.de
-------------- next part --------------
nil
11 November 2008 12:44:55 pm

VM: unix - a SmalltalkImage
Image: Squeakland-OLPC [Letztes Update: #2139]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/schueler/speicher_helena/schule/informatik/Etoys
Trusted Dir /home/schueler/speicher_helena/.etoys
Untrusted Dir /home/schueler/speicher_helena/schule/informatik/Etoys

UniclassScript(Object)>>error:
	Receiver: A UniclassScript - selector: #a scriptEditor: nil
	Arguments and temporary variables: 
		aString: 	'duplicate selector'
	Receiver's instance variables: 
		authoringStamp: 	' 11/11/2008 11:45'
		properties: 	nil
		elementSymbol: 	nil
		naturalLanguageTranslations: 	nil
		selector: 	#a
		argumentVariables: 	an OrderedCollection()
		resultSpecification: 	nil
		receiverType: 	nil
		attributeKeywords: 	an OrderedCollection()
		defaultStatus: 	#normal
		playerClass: 	Player136127
		currentScriptEditor: 	nil
		formerScriptingTiles: 	nil
		isTextuallyCoded: 	false
		lastSourceString: 	nil

UniclassScript>>instantiatedScriptEditorForPlayer:
	Receiver: A UniclassScript - selector: #a scriptEditor: nil
	Arguments and temporary variables: 
		aPlayer: 	a Player136127 (3837) named Spongebob
		m: 	nil
	Receiver's instance variables: 
		authoringStamp: 	' 11/11/2008 11:45'
		properties: 	nil
		elementSymbol: 	nil
		naturalLanguageTranslations: 	nil
		selector: 	#a
		argumentVariables: 	an OrderedCollection()
		resultSpecification: 	nil
		receiverType: 	nil
		attributeKeywords: 	an OrderedCollection()
		defaultStatus: 	#normal
		playerClass: 	Player136127
		currentScriptEditor: 	nil
		formerScriptingTiles: 	nil
		isTextuallyCoded: 	false
		lastSourceString: 	nil

Player136127(Player)>>scriptEditorForNoCng:
	Receiver: a Player136127 (3837) named Spongebob
	Arguments and temporary variables: 
		aSelector: 	#a
		aScriptEditor: 	nil
	Receiver's instance variables: 
		dependents: 	nil
		costume: 	a TransformationMorph<Spongebob>(843) on a SketchMorph(2233)
		costumes: 	nil
		gr?sse: 	6

[] in Player136127(Player)>>allScriptEditors {[:n | self scriptEditorForNoCng: n]}
	Arguments and temporary variables: 
		n: 	#a


--- The full stack ---
UniclassScript(Object)>>error:
UniclassScript>>instantiatedScriptEditorForPlayer:
Player136127(Player)>>scriptEditorForNoCng:
[] in Player136127(Player)>>allScriptEditors {[:n | self scriptEditorForNoCng: n]}
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OrderedCollection>>collect:
Player136127(Player)>>allScriptEditors
SketchMorph(Morph)>>allMorphsAndBookPagesInto:
[] in TransformationMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
TransformationMorph(Morph)>>allMorphsAndBookPagesInto:
[] in PasteUpMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
PasteUpMorph(Morph)>>allMorphsAndBookPagesInto:
[] in PasteUpMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
PasteUpMorph(Morph)>>allMorphsAndBookPagesInto:
Presenter>>reallyAllExtantPlayersNoSort
Presenter>>reallyAllExtantPlayers
AllPlayersTool>>reinvigorate
AllPlayersTool>>step
AllPlayersTool(Morph)>>stepAt:
StepMessage(MorphicAlarm)>>value:
WorldState>>runLocalStepMethodsIn:
WorldState>>runStepMethodsIn:
PasteUpMorph>>runStepMethods
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor yield.  false] whileFalse.  nil]}
[] in BlockContext>>newProcess {[self value.  Processor terminateActive]}
-------------- next part --------------
nil
11 November 2008 12:44:23 pm

VM: unix - a SmalltalkImage
Image: Squeakland-OLPC [Letztes Update: #2139]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/schueler/speicher_helena/schule/informatik/Etoys
Trusted Dir /home/schueler/speicher_helena/.etoys
Untrusted Dir /home/schueler/speicher_helena/schule/informatik/Etoys

UniclassScript(Object)>>error:
	Receiver: A UniclassScript - selector: #a scriptEditor: nil
	Arguments and temporary variables: 
		aString: 	'duplicate selector'
	Receiver's instance variables: 
		authoringStamp: 	' 11/11/2008 11:45'
		properties: 	nil
		elementSymbol: 	nil
		naturalLanguageTranslations: 	nil
		selector: 	#a
		argumentVariables: 	an OrderedCollection()
		resultSpecification: 	nil
		receiverType: 	nil
		attributeKeywords: 	an OrderedCollection()
		defaultStatus: 	#normal
		playerClass: 	Player136127
		currentScriptEditor: 	nil
		formerScriptingTiles: 	nil
		isTextuallyCoded: 	false
		lastSourceString: 	nil

UniclassScript>>instantiatedScriptEditorForPlayer:
	Receiver: A UniclassScript - selector: #a scriptEditor: nil
	Arguments and temporary variables: 
		aPlayer: 	a Player136127 (3837) named Spongebob
		m: 	nil
	Receiver's instance variables: 
		authoringStamp: 	' 11/11/2008 11:45'
		properties: 	nil
		elementSymbol: 	nil
		naturalLanguageTranslations: 	nil
		selector: 	#a
		argumentVariables: 	an OrderedCollection()
		resultSpecification: 	nil
		receiverType: 	nil
		attributeKeywords: 	an OrderedCollection()
		defaultStatus: 	#normal
		playerClass: 	Player136127
		currentScriptEditor: 	nil
		formerScriptingTiles: 	nil
		isTextuallyCoded: 	false
		lastSourceString: 	nil

Player136127(Player)>>scriptEditorForNoCng:
	Receiver: a Player136127 (3837) named Spongebob
	Arguments and temporary variables: 
		aSelector: 	#a
		aScriptEditor: 	nil
	Receiver's instance variables: 
		dependents: 	nil
		costume: 	a TransformationMorph<Spongebob>(843) on a SketchMorph(2233)
		costumes: 	nil
		gr?sse: 	6

[] in Player136127(Player)>>allScriptEditors {[:n | self scriptEditorForNoCng: n]}
	Arguments and temporary variables: 
		n: 	#a


--- The full stack ---
UniclassScript(Object)>>error:
UniclassScript>>instantiatedScriptEditorForPlayer:
Player136127(Player)>>scriptEditorForNoCng:
[] in Player136127(Player)>>allScriptEditors {[:n | self scriptEditorForNoCng: n]}
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OrderedCollection>>collect:
Player136127(Player)>>allScriptEditors
SketchMorph(Morph)>>allMorphsAndBookPagesInto:
[] in TransformationMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
TransformationMorph(Morph)>>allMorphsAndBookPagesInto:
[] in PasteUpMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
PasteUpMorph(Morph)>>allMorphsAndBookPagesInto:
[] in PasteUpMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
PasteUpMorph(Morph)>>allMorphsAndBookPagesInto:
Presenter>>reallyAllExtantPlayersNoSort
Presenter>>reallyAllExtantPlayers
AllPlayersTool>>reinvigorate
[] in AllPlayersTool>>initializeFor: {[self updateScrollbar.  self reinvigorate]}
WorldState>>runStepMethodsIn:
PasteUpMorph>>runStepMethods
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor yield.  false] whileFalse.  nil]}
[] in BlockContext>>newProcess {[self value.  Processor terminateActive]}
-------------- next part --------------
nil
11 November 2008 12:36:50 pm

VM: unix - a SmalltalkImage
Image: Squeakland-OLPC [Letztes Update: #2139]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/schueler/speicher_helena/schule/informatik/Etoys
Trusted Dir /home/schueler/speicher_helena/.etoys
Untrusted Dir /home/schueler/speicher_helena/schule/informatik/Etoys

UniclassScript(Object)>>error:
	Receiver: A UniclassScript - selector: #a scriptEditor: nil
	Arguments and temporary variables: 
		aString: 	'duplicate selector'
	Receiver's instance variables: 
		authoringStamp: 	' 11/11/2008 11:45'
		properties: 	nil
		elementSymbol: 	nil
		naturalLanguageTranslations: 	nil
		selector: 	#a
		argumentVariables: 	an OrderedCollection()
		resultSpecification: 	nil
		receiverType: 	nil
		attributeKeywords: 	an OrderedCollection()
		defaultStatus: 	#normal
		playerClass: 	Player136127
		currentScriptEditor: 	nil
		formerScriptingTiles: 	nil
		isTextuallyCoded: 	false
		lastSourceString: 	nil

UniclassScript>>instantiatedScriptEditorForPlayer:
	Receiver: A UniclassScript - selector: #a scriptEditor: nil
	Arguments and temporary variables: 
		aPlayer: 	a Player136127 (3837) named Spongebob
		m: 	nil
	Receiver's instance variables: 
		authoringStamp: 	' 11/11/2008 11:45'
		properties: 	nil
		elementSymbol: 	nil
		naturalLanguageTranslations: 	nil
		selector: 	#a
		argumentVariables: 	an OrderedCollection()
		resultSpecification: 	nil
		receiverType: 	nil
		attributeKeywords: 	an OrderedCollection()
		defaultStatus: 	#normal
		playerClass: 	Player136127
		currentScriptEditor: 	nil
		formerScriptingTiles: 	nil
		isTextuallyCoded: 	false
		lastSourceString: 	nil

Player136127(Player)>>scriptEditorForNoCng:
	Receiver: a Player136127 (3837) named Spongebob
	Arguments and temporary variables: 
		aSelector: 	#a
		aScriptEditor: 	nil
	Receiver's instance variables: 
		dependents: 	nil
		costume: 	a TransformationMorph<Spongebob>(843) on a SketchMorph(2233)
		costumes: 	nil
		gr?sse: 	6

[] in Player136127(Player)>>allScriptEditors {[:n | self scriptEditorForNoCng: n]}
	Arguments and temporary variables: 
		n: 	#a


--- The full stack ---
UniclassScript(Object)>>error:
UniclassScript>>instantiatedScriptEditorForPlayer:
Player136127(Player)>>scriptEditorForNoCng:
[] in Player136127(Player)>>allScriptEditors {[:n | self scriptEditorForNoCng: n]}
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OrderedCollection>>collect:
Player136127(Player)>>allScriptEditors
SketchMorph(Morph)>>allMorphsAndBookPagesInto:
[] in TransformationMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
TransformationMorph(Morph)>>allMorphsAndBookPagesInto:
[] in PasteUpMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
PasteUpMorph(Morph)>>allMorphsAndBookPagesInto:
[] in PasteUpMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
PasteUpMorph(Morph)>>allMorphsAndBookPagesInto:
Presenter>>reallyAllExtantPlayersNoSort
PasteUpMorph>>cleanUpReferences
Project>>exportSegmentWithChangeSet:fileName:directory:withoutInteraction:
Project>>exportSegmentFileName:directory:withoutInteraction:
Project>>storeOnServerInnards
[] in Project>>storeOnServerWithProgressInfo {[self storeOnServerInnards]}
BlockContext>>on:do:
[] in Project>>storeOnServerWithProgressInfo {[:bar | [self storeOnServerInnards]   on: ProgressNotification   do: [:e |  ...]}
[] in ProgressInitiationException>>defaultMorphicAction {[result := workBlock value: progress]}
BlockContext>>ensure:
ProgressInitiationException>>defaultMorphicAction
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:during:
Project>>storeOnServerWithProgressInfo
Project>>storeOnServerAssumingNameValid
[] in Project>>doArmsLengthCommand: {[self perform: aCommand]}
BlockContext>>ensure:
Project>>doArmsLengthCommand:
[] in Project>>armsLengthCommand:withDescription: {[self doArmsLengthCommand: aCommand]}
[] in DoCommandOnceMorph>>step {[goForIt value]}
BlockContext>>on:do:
DoCommandOnceMorph>>step
...etc...
-------------- next part --------------
nil
11 November 2008 12:24:47 pm

VM: unix - a SmalltalkImage
Image: Squeakland-OLPC [Letztes Update: #2139]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/schueler/speicher_helena/schule/informatik/Etoys
Trusted Dir /home/schueler/speicher_helena/.etoys
Untrusted Dir /home/schueler/speicher_helena/schule/informatik/Etoys

UniclassScript(Object)>>error:
	Receiver: A UniclassScript - selector: #a scriptEditor: nil
	Arguments and temporary variables: 
		aString: 	'duplicate selector'
	Receiver's instance variables: 
		authoringStamp: 	' 11/11/2008 11:45'
		properties: 	nil
		elementSymbol: 	nil
		naturalLanguageTranslations: 	nil
		selector: 	#a
		argumentVariables: 	an OrderedCollection()
		resultSpecification: 	nil
		receiverType: 	nil
		attributeKeywords: 	an OrderedCollection()
		defaultStatus: 	#normal
		playerClass: 	Player136127
		currentScriptEditor: 	nil
		formerScriptingTiles: 	nil
		isTextuallyCoded: 	false
		lastSourceString: 	nil

UniclassScript>>instantiatedScriptEditorForPlayer:
	Receiver: A UniclassScript - selector: #a scriptEditor: nil
	Arguments and temporary variables: 
		aPlayer: 	a Player136127 (3837) named Spongebob
		m: 	nil
	Receiver's instance variables: 
		authoringStamp: 	' 11/11/2008 11:45'
		properties: 	nil
		elementSymbol: 	nil
		naturalLanguageTranslations: 	nil
		selector: 	#a
		argumentVariables: 	an OrderedCollection()
		resultSpecification: 	nil
		receiverType: 	nil
		attributeKeywords: 	an OrderedCollection()
		defaultStatus: 	#normal
		playerClass: 	Player136127
		currentScriptEditor: 	nil
		formerScriptingTiles: 	nil
		isTextuallyCoded: 	false
		lastSourceString: 	nil

Player136127(Player)>>scriptEditorForNoCng:
	Receiver: a Player136127 (3837) named Spongebob
	Arguments and temporary variables: 
		aSelector: 	#a
		aScriptEditor: 	nil
	Receiver's instance variables: 
		dependents: 	nil
		costume: 	a TransformationMorph<Spongebob>(843) on a SketchMorph(2233)
		costumes: 	nil
		gr?sse: 	6

[] in Player136127(Player)>>allScriptEditors {[:n | self scriptEditorForNoCng: n]}
	Arguments and temporary variables: 
		n: 	#a


--- The full stack ---
UniclassScript(Object)>>error:
UniclassScript>>instantiatedScriptEditorForPlayer:
Player136127(Player)>>scriptEditorForNoCng:
[] in Player136127(Player)>>allScriptEditors {[:n | self scriptEditorForNoCng: n]}
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OrderedCollection>>collect:
Player136127(Player)>>allScriptEditors
SketchMorph(Morph)>>allMorphsAndBookPagesInto:
[] in TransformationMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
TransformationMorph(Morph)>>allMorphsAndBookPagesInto:
[] in PasteUpMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
PasteUpMorph(Morph)>>allMorphsAndBookPagesInto:
[] in PasteUpMorph(Morph)>>allMorphsAndBookPagesInto: {[:m | m allMorphsAndBookPagesInto: aSet]}
Array(SequenceableCollection)>>do:
PasteUpMorph(Morph)>>allMorphsAndBookPagesInto:
Presenter>>reallyAllExtantPlayersNoSort
PasteUpMorph>>cleanUpReferences
Project>>exportSegmentWithChangeSet:fileName:directory:withoutInteraction:
Project>>exportSegmentFileName:directory:withoutInteraction:
Project>>storeOnServerInnards
[] in Project>>storeOnServerWithProgressInfo {[self storeOnServerInnards]}
BlockContext>>on:do:
[] in Project>>storeOnServerWithProgressInfo {[:bar | [self storeOnServerInnards]   on: ProgressNotification   do: [:e |  ...]}
[] in ProgressInitiationException>>defaultMorphicAction {[result := workBlock value: progress]}
BlockContext>>ensure:
ProgressInitiationException>>defaultMorphicAction
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:during:
Project>>storeOnServerWithProgressInfo
Project>>storeOnServerAssumingNameValid
[] in Project>>doArmsLengthCommand: {[self perform: aCommand]}
BlockContext>>ensure:
Project>>doArmsLengthCommand:
[] in Project>>armsLengthCommand:withDescription: {[self doArmsLengthCommand: aCommand]}
[] in DoCommandOnceMorph>>step {[goForIt value]}
BlockContext>>on:do:
DoCommandOnceMorph>>step
...etc...


More information about the Etoys mailing list