GemTalk / Rowan

a new project/package manager for Smalltalk that supports FileTree and Tonel repositories, and is independent of Monticello and Metacello
MIT License
14 stars 7 forks source link

(V2.0) Rowan update from 869fc25f to ba6a4221 results in "internal error - compiled method already exists in method dictionary when new extension method is expected" #557

Open dalehenrich opened 4 years ago

dalehenrich commented 4 years ago
a UserDefinedError occurred (error 2318), reason:halt, internal error - compiled method already exists in method dictionary when new extension method is expected

[1] UserDefinedError (AbstractException) >> _signalWith: @6 line 25
[2] UserDefinedError (AbstractException) >> signal @2 line 47
[3] RwGsSymbolDictionaryRegistry_Implementation class (Object) >> error: @6 line 7
[4] RwGsSymbolDictionaryRegistry_Implementation class >> addExtensionCompiledMethod:for:protocol:toPackageNamed:instance: @11 line 12
[5] RwGsSymbolDictionaryRegistry >> addExtensionCompiledMethod:for:protocol:toPackageNamed:implementationClass: @2 line 5
[6] RwGsMethodExtensionSymbolDictPatch >> installMethod @5 line 4
[7] [] in RwGsPatchSet_254 >> updateMethodDictionaries @66 line 36
[8] [] in Set >> do: @8 line 11
[9] KeyValueDictionary >> keysDo: @17 line 13
[10] Set >> do: @4 line 11
[11] RwGsPatchSet_254 >> updateMethodDictionaries @12 line 32
[12] RwGsPatchSet_254 >> apply @26 line 30
[13] RwGsImage class >> applyModification_254:visitorClass:instanceMigrator: @11 line 9
[14] RwGsImage class >> applyModification_254:instanceMigrator: @8 line 7
[15] RwPrjLoadTool >> _loadProjectSetDefinition_254:instanceMigrator: @18 line 23
[16] [] in RwPrjLoadTool >> _doProjectSetLoad_254:instanceMigrator:originalProjectSet:processedClassNames: @8 line 4
[17] ExecBlock0 (ExecBlock) >> on:do: @3 line 44
[18] RwPrjLoadTool >> _doProjectSetLoad_254:instanceMigrator:originalProjectSet:processedClassNames: @3 line 6
[19] RwPrjLoadTool >> loadProjectNamed:instanceMigrator: @8 line 9
[20] RwPrjLoadTool >> loadProjectNamed: @4 line 5
[21] [] in RowanProjectService >> reloadProject @13 line 2
[22] ExecBlock0 (ExecBlock) >> on:do: @3 line 44
[23] RowanProjectService >> reloadProject @3 line 3
[24] [] in RowanBrowserService >> reloadProjects:andUpdateServices: @23 line 5
[25] Array (Collection) >> do: @6 line 10
[26] RowanBrowserService >> reloadProjects:andUpdateServices: @5 line 5
[27] RowanBrowserService (Object) >> perform:withArguments: @1 line 1
[28] RowanBrowserService >> servicePerform:withArguments: @2 line 2
[29] [] in JadeServer >> updateFromSton: @31 line 12
[30] OrderedCollection (Collection) >> do: @6 line 10
[31] [] in JadeServer >> updateFromSton: @20 line 8
[32] ExecBlock0 (ExecBlock) >> on:do: @3 line 44
[33] JadeServer64bit35 (JadeServer) >> updateFromSton: @9 line 13
[34] GsNMethod class >> _gsReturnToC @1 line 1
===============================================
[1] UserDefinedError (AbstractException) >> _signalWith: @6 line 25
    receiver oop(81782529) == a UserDefinedError occurred (error 2318), reason:halt, internal error - compiled method already exists in method dictionary when new extension method is expected

instance variables:
    -currGsHandler oop(20) == nil
    -gsArgs oop(20) == nil
    -gsDetails oop(81061889) == 'internal error - compiled method already exists in method dictionary when new extension method is expected'
    -gsNumber oop(18546) == 2318
    -gsReason oop(81062145) == 'halt'
    -gsResumable oop(268) == true
    -gsStack oop(20) == nil
    -gsTrappable oop(268) == true
    -messageText oop(81061633) == 'a UserDefinedError occurred (error 2318), reason:halt, internal error - compiled method already exists in method dictionary when new extension method is expected'
    -tag oop(20) == nil

temporary variables and parameters:
    inCextensionArg oop(20) == nil
    res oop(20) == nil
----------------------------------------------------
[2] UserDefinedError (AbstractException) >> signal @2 line 47
    receiver oop(81782529) == a UserDefinedError occurred (error 2318), reason:halt, internal error - compiled method already exists in method dictionary when new extension method is expected

instance variables:
    -currGsHandler oop(20) == nil
    -gsArgs oop(20) == nil
    -gsDetails oop(81061889) == 'internal error - compiled method already exists in method dictionary when new extension method is expected'
    -gsNumber oop(18546) == 2318
    -gsReason oop(81062145) == 'halt'
    -gsResumable oop(268) == true
    -gsStack oop(20) == nil
    -gsTrappable oop(268) == true
    -messageText oop(81061633) == 'a UserDefinedError occurred (error 2318), reason:halt, internal error - compiled method already exists in method dictionary when new extension method is expected'
    -tag oop(20) == nil

temporary variables and parameters:
----------------------------------------------------
[3] RwGsSymbolDictionaryRegistry_Implementation class (Object) >> error: @6 line 7
    receiver oop(82301185) == RwGsSymbolDictionaryRegistry_Implementation

instance variables:

temporary variables and parameters:
    messageString oop(81061889) == 'internal error - compiled method already exists in method dictionary when new extension method is expected'
----------------------------------------------------
[4] RwGsSymbolDictionaryRegistry_Implementation class >> addExtensionCompiledMethod:for:protocol:toPackageNamed:instance: @11 line 12
    receiver oop(82301185) == RwGsSymbolDictionaryRegistry_Implementation

instance variables:

temporary variables and parameters:
    behavior oop(73729) == SequenceableCollection
    compiledMethod oop(93493249) == GsNMethod SequenceableCollection>>writeStreamPortable
    existing oop(20) == nil
    loadedClassExtension oop(20) == nil
    loadedMethod oop(20) == nil
    loadedPackage oop(20) == nil
    methodDictionary oop(970753) == aGsMethodDictionary
    oldCompiledMethod oop(47150337) == GsNMethod SequenceableCollection>>writeStreamPortable
    packageName oop(93492737) == 'Rowan-GemStone-Components-Kernel'
    protocolString oop(93492993) == '*rowan-gemstone-components-kernel'
    protocolSymbol oop(20) == nil
    registryInstance oop(62494721) == aRwGsSymbolDictionaryRegistry
    selector oop(729601) == #'writeStreamPortable'
----------------------------------------------------
[5] RwGsSymbolDictionaryRegistry >> addExtensionCompiledMethod:for:protocol:toPackageNamed:implementationClass: @2 line 5
    receiver oop(62494721) == aRwGsSymbolDictionaryRegistry

instance variables:
    -classExtensionRegistry oop(62500865) == anIdentityKeyValueDictionary( aClassHistory( Array)->anIdentitySet( aRwGsLoadedSymbolDictClassExtension Array), aClassHistory( GsFile)->anIdentitySet( aRwGsLoadedSymbolDictClassExtension GsFile, aRwGs...
    -classRegistry oop(62500609) == anIdentityKeyValueDictionary( aClassHistory( FileReference)->aRwGsLoadedSymbolDictClass FileReference, aClassHistory( MemoryHandle)->aRwGsLoadedSymbolDictClass MemoryHandle, aClassHistory( SelectVisit...
    -methodRegistry oop(62501121) == anIdentityKeyValueDictionary( GsNMethod ZnBufferedWriteStream>>next:putAll:startingAt:->aRwGsLoadedSymbolDictMethod next:putAll:startingAt: ZnBufferedWriteStream ( 43133185 ), GsNMethod FileReferenceA...
    -packageRegistry oop(62500353) == aKeyValueDictionary( 'Tonel-GemStone-Tests'->aRwGsLoadedSymbolDictPackage Tonel-GemStone-Tests, 'Rowan-GemStone-Url'->aRwGsLoadedSymbolDictPackage Rowan-GemStone-Url, 'Rowan-GemStone-Kernel-32x'->aRwG...
    -symbolDictionary oop(207361) == aSymbolDictionary( #'RubySocket'->RubySocket, #'GsCompoundClause'->GsCompoundClause, #'ProfMonitorTree'->ProfMonitorTree, #'IcuSortedCollection'->IcuSortedCollection, #'GsRangeQueryPredicate'->GsRange...

temporary variables and parameters:
    behavior oop(73729) == SequenceableCollection
    compiledMethod oop(93493249) == GsNMethod SequenceableCollection>>writeStreamPortable
    implementationClass oop(82301185) == RwGsSymbolDictionaryRegistry_Implementation
    packageName oop(93492737) == 'Rowan-GemStone-Components-Kernel'
    protocolString oop(93492993) == '*rowan-gemstone-components-kernel'
----------------------------------------------------
[6] RwGsMethodExtensionSymbolDictPatch >> installMethod @5 line 4
    receiver oop(82236673) == aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable

instance variables:
    -behavior oop(73729) == SequenceableCollection
    -classDefinition oop(93488129) == aRwClassExtensionDefinition for SequenceableCollection
    -compiledMethod oop(93493249) == GsNMethod SequenceableCollection>>writeStreamPortable
    -isMeta oop(12) == false
    -methodDefinition oop(93488385) == aRwMethodDefinition for writeStreamPortable
    -packageDefinition oop(93488897) == aRwPackageDefinition for Rowan-GemStone-Components-Kernel
    -projectDefinition oop(93488641) == aRwComponentProjectDefinition for Rowan
    -selector oop(20) == nil

temporary variables and parameters:
----------------------------------------------------
[7] [] in RwGsPatchSet_254 >> updateMethodDictionaries @66 line 36
    receiver oop(93486081) == anExecBlock1

instance variables:

temporary variables and parameters:
    aMethodMove oop(20) == nil
    ar oop(20) == nil
    classExtDict oop(20) == nil
    className oop(93485825) == 'SequenceableCollection'
    methodDict oop(20) == nil
    movedClassesWithNewVersionMap oop(93485569) == aDictionary( )
    movedExtensionMethodsMap oop(20) == nil
    patch oop(82236673) == aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable
----------------------------------------------------
[8] [] in Set >> do: @8 line 11
    receiver oop(93484289) == anExecBlock1

instance variables:

temporary variables and parameters:
    aBlock oop(93486081) == anExecBlock1
    aKey oop(82236673) == aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable
----------------------------------------------------
[9] KeyValueDictionary >> keysDo: @17 line 13
    receiver oop(93484033) == aKeyValueDictionary( aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable->aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable, aRwGsMeth...

instance variables:
    -collisionLimit oop(58) == 7
    -numCollisions oop(34) == 4
    -numElements oop(66) == 8
    -tableSize oop(58) == 7

temporary variables and parameters:
    aBlock oop(93484289) == anExecBlock1
    aKey oop(82236673) == aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable
    collisionBkt oop(93481473) == aCollisionBucket
    j oop(10) == 1
    tableIndex oop(10) == 1
----------------------------------------------------
[10] Set >> do: @4 line 11
    receiver oop(93481217) == aSet( aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable, aRwGsMethodExtensionSymbolDictPatch for RwProjectComponentVisitorV2Test>>_cloneVastTonelDemo_555:deleteClone:...

instance variables:
    -_indexedPaths oop(20) == nil
    -_levels oop(20) == nil
    -_numEntries oop(20) == nil
    -_varyingSize oop(20) == nil
    -dict oop(93484033) == aKeyValueDictionary( aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable->aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable, aRwGsMeth...

temporary variables and parameters:
    aBlock oop(93486081) == anExecBlock1
    tmp oop(2) == 0
----------------------------------------------------
[11] RwGsPatchSet_254 >> updateMethodDictionaries @12 line 32
    receiver oop(93487873) == aRwGsPatchSet_254

instance variables:
    -addedClasses oop(93475329) == aSet( )
    -addedMethods oop(93472769) == aSet( aRwGsMethodAdditionSymbolDictPatch for RwProjectComponentVisitorV2Test>>testVisitVastTonelDemo_555_independent, aRwGsMethodAdditionSymbolDictPatch for RwResolvedProjectV2 class>>loadSpecificatio...
    -addedPackages oop(93476353) == aSet( )
    -addedProjects oop(93476609) == aSet( )
    -classesWithClassVariableChanges oop(93473537) == aSet( aRwGsClassVariableChangeSymbolDictPatch(RBScanner), aRwGsClassVariableChangeSymbolDictPatch(JadeServer), aRwGsClassVariableChangeSymbolDictPatch(RBConfigurableFormatter), aRwGsClassVariableChang...
    -classesWithConstraintChanges oop(93473281) == aSet( )
    -classesWithNewVersions oop(93473025) == aSet( )
    -classesWithPropertyChanges oop(93474049) == aSet( aRwGsClassPropertiesSymDictPatch(RwClassModificationForcingNewClassVersion), aRwGsClassPropertiesSymDictPatch(RwPkgAdoptTool), aRwGsClassPropertiesSymDictPatch(RwGsInstanceMigrator), aRwGsClassP...
    -classesWithSymbolDictionaryChanges oop(93473793) == aSet( )
    -createdClasses oop(93470721) == aDictionary( #'RwGsMethodDeletionSymbolDictPatch'->RwGsMethodDeletionSymbolDictPatch, #'RwGsMethodAdditionSymbolDictPatch'->RwGsMethodAdditionSymbolDictPatch, #'RwGsMethodPatch'->RwGsMethodPatch, #'Rw...
    -currentProjectDefinition oop(93488641) == aRwComponentProjectDefinition for Rowan
    -deletedClasses oop(93475073) == aSet( )
    -deletedMethods oop(93472513) == aSet( aRwGsMethodDeletionSymbolDictPatch for RwProjectComponentVisitorV2Test>>_visitorClass)
    -deletedPackages oop(93476097) == aSet( aRwGsPackageDeletionSymbolDictPatch)
    -deleteNewVersionMethods oop(93472257) == aSet( )
    -errors oop(93466881) == aSet( )
    -extendedClasses oop(93474305) == aSet( aRwGsClassExtensionSymbolDictPatch(Collection), aRwGsClassExtensionSymbolDictPatch(SequenceableCollection), aRwGsClassExtensionSymbolDictPatch(RwSpecification))
    -extendedMethods oop(93481217) == aSet( aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable, aRwGsMethodExtensionSymbolDictPatch for RwProjectComponentVisitorV2Test>>_cloneVastTonelDemo_555:deleteClone:...
    -instanceMigrator oop(20) == nil
    -methodsNeedingRecompile oop(93471489) == aSet( aRwGsMethodSourceSymbolDictPatch for RwAbstractProjectLoadComponentV2 class>>fromUrl:, aRwGsMethodSourceSymbolDictPatch for RwSpecification class>>_supportedPlatformNames, aRwGsMethodSourceSymbo...
    -methodsWithPropertyChanges oop(93471745) == aSet( aRwGsMethodPropertiesSymDictPatch for RwLoadSpecificationV2>>_gemstoneDefaultUseSessionMethodsForExtensions, aRwGsMethodPropertiesSymDictPatch for RwLoadSpecificationV2>>gemstoneDefaultUseSessio...
    -movedClasses oop(93474817) == aSet( )
    -movedClassesMap oop(93474561) == aDictionary( )
    -movedMethods oop(93472001) == aSet( aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove,...
    -movedPackages oop(93475841) == aSet( )
    -projectsWithPropertyChanges oop(93475585) == aSet( )
    -tempSymbols oop(93471233) == aSymbolDictionary( #'RwProjectLoadComponentV2Test'->RwProjectLoadComponentV2Test, #'RBSmallDictionaryTest'->RBSmallDictionaryTest, #'RBFormatterTests'->RBFormatterTests, #'RwComponentViewV2'->RwCompon...

temporary variables and parameters:
    movedClassesWithNewVersionMap oop(93485569) == aDictionary( )
    movedExtensionMethodsMap oop(20) == nil
----------------------------------------------------
[12] RwGsPatchSet_254 >> apply @26 line 30
    receiver oop(93487873) == aRwGsPatchSet_254

instance variables:
    -addedClasses oop(93475329) == aSet( )
    -addedMethods oop(93472769) == aSet( aRwGsMethodAdditionSymbolDictPatch for RwProjectComponentVisitorV2Test>>testVisitVastTonelDemo_555_independent, aRwGsMethodAdditionSymbolDictPatch for RwResolvedProjectV2 class>>loadSpecificatio...
    -addedPackages oop(93476353) == aSet( )
    -addedProjects oop(93476609) == aSet( )
    -classesWithClassVariableChanges oop(93473537) == aSet( aRwGsClassVariableChangeSymbolDictPatch(RBScanner), aRwGsClassVariableChangeSymbolDictPatch(JadeServer), aRwGsClassVariableChangeSymbolDictPatch(RBConfigurableFormatter), aRwGsClassVariableChang...
    -classesWithConstraintChanges oop(93473281) == aSet( )
    -classesWithNewVersions oop(93473025) == aSet( )
    -classesWithPropertyChanges oop(93474049) == aSet( aRwGsClassPropertiesSymDictPatch(RwClassModificationForcingNewClassVersion), aRwGsClassPropertiesSymDictPatch(RwPkgAdoptTool), aRwGsClassPropertiesSymDictPatch(RwGsInstanceMigrator), aRwGsClassP...
    -classesWithSymbolDictionaryChanges oop(93473793) == aSet( )
    -createdClasses oop(93470721) == aDictionary( #'RwGsMethodDeletionSymbolDictPatch'->RwGsMethodDeletionSymbolDictPatch, #'RwGsMethodAdditionSymbolDictPatch'->RwGsMethodAdditionSymbolDictPatch, #'RwGsMethodPatch'->RwGsMethodPatch, #'Rw...
    -currentProjectDefinition oop(93488641) == aRwComponentProjectDefinition for Rowan
    -deletedClasses oop(93475073) == aSet( )
    -deletedMethods oop(93472513) == aSet( aRwGsMethodDeletionSymbolDictPatch for RwProjectComponentVisitorV2Test>>_visitorClass)
    -deletedPackages oop(93476097) == aSet( aRwGsPackageDeletionSymbolDictPatch)
    -deleteNewVersionMethods oop(93472257) == aSet( )
    -errors oop(93466881) == aSet( )
    -extendedClasses oop(93474305) == aSet( aRwGsClassExtensionSymbolDictPatch(Collection), aRwGsClassExtensionSymbolDictPatch(SequenceableCollection), aRwGsClassExtensionSymbolDictPatch(RwSpecification))
    -extendedMethods oop(93481217) == aSet( aRwGsMethodExtensionSymbolDictPatch for SequenceableCollection>>writeStreamPortable, aRwGsMethodExtensionSymbolDictPatch for RwProjectComponentVisitorV2Test>>_cloneVastTonelDemo_555:deleteClone:...
    -instanceMigrator oop(20) == nil
    -methodsNeedingRecompile oop(93471489) == aSet( aRwGsMethodSourceSymbolDictPatch for RwAbstractProjectLoadComponentV2 class>>fromUrl:, aRwGsMethodSourceSymbolDictPatch for RwSpecification class>>_supportedPlatformNames, aRwGsMethodSourceSymbo...
    -methodsWithPropertyChanges oop(93471745) == aSet( aRwGsMethodPropertiesSymDictPatch for RwLoadSpecificationV2>>_gemstoneDefaultUseSessionMethodsForExtensions, aRwGsMethodPropertiesSymDictPatch for RwLoadSpecificationV2>>gemstoneDefaultUseSessio...
    -movedClasses oop(93474817) == aSet( )
    -movedClassesMap oop(93474561) == aDictionary( )
    -movedMethods oop(93472001) == aSet( aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove, aRwMethodMove,...
    -movedPackages oop(93475841) == aSet( )
    -projectsWithPropertyChanges oop(93475585) == aSet( )
    -tempSymbols oop(93471233) == aSymbolDictionary( #'RwProjectLoadComponentV2Test'->RwProjectLoadComponentV2Test, #'RBSmallDictionaryTest'->RBSmallDictionaryTest, #'RBFormatterTests'->RBFormatterTests, #'RwComponentViewV2'->RwCompon...

temporary variables and parameters:
----------------------------------------------------
[13] RwGsImage class >> applyModification_254:visitorClass:instanceMigrator: @11 line 9
    receiver oop(47627265) == RwGsImage

instance variables:

temporary variables and parameters:
    aProjectSetModification oop(93458689) == aRwProjectSetModification
    instanceMigrator oop(62488321) == aRwGsInstanceMigrator
    newClassVersionPatchSet oop(20) == nil
    patchSet oop(93487873) == aRwGsPatchSet_254
    visitor oop(93458433) == aRwGsImagePatchVisitor_254
    visitorClass oop(81706241) == RwGsImagePatchVisitor_254
----------------------------------------------------
[14] RwGsImage class >> applyModification_254:instanceMigrator: @8 line 7
    receiver oop(47627265) == RwGsImage

instance variables:

temporary variables and parameters:
    aProjectSetModification oop(93458689) == aRwProjectSetModification
    instanceMigrator oop(62488321) == aRwGsInstanceMigrator
    visitorClass oop(81706241) == RwGsImagePatchVisitor_254
----------------------------------------------------
[15] RwPrjLoadTool >> _loadProjectSetDefinition_254:instanceMigrator: @18 line 23
    receiver oop(93452033) == aRwPrjLoadTool

instance variables:
    -specification oop(20) == nil

temporary variables and parameters:
    diff oop(93458689) == aRwProjectSetModification
    instanceMigrator oop(62488321) == aRwGsInstanceMigrator
    loadedProjectDefinitionSet oop(93448193) == aRwProjectSetDefinition
    loadedProjectInfo oop(93447937) == aDictionary( 'Rowan'->aDictionary( 'loadedGroupNames'->aSet( 'tests', 'jadeServer', 'core'), 'packageMapSpecs'->aDictionary( #'packageNameToPlatformPropertiesMap'->aDictionary( 'Rowan-Components'->aDi...
    loadedProjectSet oop(93448449) == aRwEntitySet
    projectSetDefinitionToLoad oop(93448705) == aRwProjectSetDefinition
----------------------------------------------------
[16] [] in RwPrjLoadTool >> _doProjectSetLoad_254:instanceMigrator:originalProjectSet:processedClassNames: @8 line 4
    receiver oop(93437953) == anExecBlock0

instance variables:

temporary variables and parameters:
    instanceMigrator oop(62488321) == aRwGsInstanceMigrator
    projectSetDefinition oop(93448705) == aRwProjectSetDefinition
    self oop(93452033) == aRwPrjLoadTool
----------------------------------------------------
[17] ExecBlock0 (ExecBlock) >> on:do: @3 line 44
    receiver oop(93437953) == anExecBlock0

instance variables:

temporary variables and parameters:
    exceptionSelector oop(47682049) == RwExistingVisitorAddingExistingClassNotification
    fastPath oop(268) == true
    handlerBlock oop(93436673) == anExecBlock
----------------------------------------------------
[18] RwPrjLoadTool >> _doProjectSetLoad_254:instanceMigrator:originalProjectSet:processedClassNames: @3 line 6
    receiver oop(93452033) == aRwPrjLoadTool

instance variables:
    -specification oop(20) == nil

temporary variables and parameters:
    copiedProjectSetDef oop(20) == nil
    instanceMigrator oop(62488321) == aRwGsInstanceMigrator
    loadedClass oop(20) == nil
    originalProjectSet oop(93448705) == aRwProjectSetDefinition
    packageDef oop(20) == nil
    processedClassNames oop(93433345) == aSet( )
    projectDef oop(20) == nil
    projectSetDefinition oop(93448705) == aRwProjectSetDefinition
    theClass oop(20) == nil
    theClassName oop(20) == nil
    theLoadedProject oop(20) == nil
----------------------------------------------------
[19] RwPrjLoadTool >> loadProjectNamed:instanceMigrator: @8 line 9
    receiver oop(93452033) == aRwPrjLoadTool

instance variables:
    -specification oop(20) == nil

temporary variables and parameters:
    instanceMigrator oop(62488321) == aRwGsInstanceMigrator
    projectNamed oop(93430017) == 'Rowan'
    projectSetDefinition oop(93448705) == aRwProjectSetDefinition
    res oop(20) == nil
----------------------------------------------------
[20] RwPrjLoadTool >> loadProjectNamed: @4 line 5
    receiver oop(93452033) == aRwPrjLoadTool

instance variables:
    -specification oop(20) == nil

temporary variables and parameters:
    projectNamed oop(93430017) == 'Rowan'
----------------------------------------------------
[21] [] in RowanProjectService >> reloadProject @13 line 2
    receiver oop(93425409) == anExecBlock0

instance variables:

temporary variables and parameters:
    self oop(93426689) == aRowanProjectService:Rowan
----------------------------------------------------
[22] ExecBlock0 (ExecBlock) >> on:do: @3 line 44
    receiver oop(93425409) == anExecBlock0

instance variables:

temporary variables and parameters:
    exceptionSelector oop(152321) == Warning
    fastPath oop(268) == true
    handlerBlock oop(85912065) == anExecBlock
----------------------------------------------------
[23] RowanProjectService >> reloadProject @3 line 3
    receiver oop(93426689) == aRowanProjectService:Rowan

instance variables:
    -branch oop(93421313) == 'vast'
    -changes oop(20) == nil
    -command oop(12054785) == #'update'
    -commandArgs oop(93422081) == anArray( )
    -definition oop(20) == nil
    -existsOnDisk oop(268) == true
    -isDirty oop(12) == false
    -isLoaded oop(268) == true
    -isSkew oop(268) == true
    -name oop(93430017) == 'Rowan'
    -organizer oop(93421825) == aClassOrganizer
    -packages oop(93421057) == anArray( )
    -projectUrl oop(93420801) == 'https://github.com/GemTalk/Rowan'
    -rowanProjectsHome oop(93420545) == '/home/dhenrich/rogue/_homes/rogue/_home/shared/repos'
    -sha oop(93421569) == '869fc25f'
    -updates oop(20) == nil
    -updateType oop(20) == nil

temporary variables and parameters:
----------------------------------------------------
[24] [] in RowanBrowserService >> reloadProjects:andUpdateServices: @23 line 5
    receiver oop(84825857) == anExecBlock1

instance variables:

temporary variables and parameters:
    projectService oop(93426689) == aRowanProjectService:Rowan
----------------------------------------------------
[25] Array (Collection) >> do: @6 line 10
    receiver oop(93419265) == anArray( aRowanProjectService:Rowan, aRowanProjectService:STON, aRowanProjectService:Cypress, aRowanProjectService:FileSystemGs, aRowanProjectService:Tonel)

instance variables:

temporary variables and parameters:
    aBlock oop(84825857) == anExecBlock1
    i oop(10) == 1
----------------------------------------------------
[26] RowanBrowserService >> reloadProjects:andUpdateServices: @5 line 5
    receiver oop(93416961) == aRowanBrowserService

instance variables:
    -allClasses oop(93413889) == anOrderedCollection( )
    -command oop(48008705) == #'reloadProjects:andUpdateServices:'
    -commandArgs oop(93414657) == anArray( anArray( aRowanProjectService:Rowan, aRowanProjectService:STON, aRowanProjectService:Cypress, aRowanProjectService:FileSystemGs, aRowanProjectService:Tonel), anOrderedCollection( aRowanPackag...
    -definition oop(20) == nil
    -dictionaries oop(20) == nil
    -hierarchyServices oop(20) == nil
    -newCachedClasses oop(93413377) == anArray( )
    -newCachedSelectors oop(93413633) == anArray( )
    -organizer oop(93421825) == aClassOrganizer
    -projects oop(20) == nil
    -removedMethods oop(20) == nil
    -selectedClass oop(20) == nil
    -testCount oop(20) == nil
    -testPackages oop(20) == nil
    -updates oop(20) == nil
    -updateType oop(20) == nil

temporary variables and parameters:
    answeringService oop(20) == nil
    projectNames oop(20) == nil
    projectServices oop(93419265) == anArray( aRowanProjectService:Rowan, aRowanProjectService:STON, aRowanProjectService:Cypress, aRowanProjectService:FileSystemGs, aRowanProjectService:Tonel)
    services oop(93414401) == anOrderedCollection( aRowanPackageService:Rowan-TestsV2)
----------------------------------------------------
[27] RowanBrowserService (Object) >> perform:withArguments: @1 line 1
    receiver oop(93416961) == aRowanBrowserService

instance variables:
    -allClasses oop(93413889) == anOrderedCollection( )
    -command oop(48008705) == #'reloadProjects:andUpdateServices:'
    -commandArgs oop(93414657) == anArray( anArray( aRowanProjectService:Rowan, aRowanProjectService:STON, aRowanProjectService:Cypress, aRowanProjectService:FileSystemGs, aRowanProjectService:Tonel), anOrderedCollection( aRowanPackag...
    -definition oop(20) == nil
    -dictionaries oop(20) == nil
    -hierarchyServices oop(20) == nil
    -newCachedClasses oop(93413377) == anArray( )
    -newCachedSelectors oop(93413633) == anArray( )
    -organizer oop(93421825) == aClassOrganizer
    -projects oop(20) == nil
    -removedMethods oop(20) == nil
    -selectedClass oop(20) == nil
    -testCount oop(20) == nil
    -testPackages oop(20) == nil
    -updates oop(20) == nil
    -updateType oop(20) == nil

temporary variables and parameters:
    anArray oop(93414657) == anArray( anArray( aRowanProjectService:Rowan, aRowanProjectService:STON, aRowanProjectService:Cypress, aRowanProjectService:FileSystemGs, aRowanProjectService:Tonel), anOrderedCollection( aRowanPackag...
    aSelectorSymbol oop(48008705) == #'reloadProjects:andUpdateServices:'
----------------------------------------------------
[28] RowanBrowserService >> servicePerform:withArguments: @2 line 2
    receiver oop(93416961) == aRowanBrowserService

instance variables:
    -allClasses oop(93413889) == anOrderedCollection( )
    -command oop(48008705) == #'reloadProjects:andUpdateServices:'
    -commandArgs oop(93414657) == anArray( anArray( aRowanProjectService:Rowan, aRowanProjectService:STON, aRowanProjectService:Cypress, aRowanProjectService:FileSystemGs, aRowanProjectService:Tonel), anOrderedCollection( aRowanPackag...
    -definition oop(20) == nil
    -dictionaries oop(20) == nil
    -hierarchyServices oop(20) == nil
    -newCachedClasses oop(93413377) == anArray( )
    -newCachedSelectors oop(93413633) == anArray( )
    -organizer oop(93421825) == aClassOrganizer
    -projects oop(20) == nil
    -removedMethods oop(20) == nil
    -selectedClass oop(20) == nil
    -testCount oop(20) == nil
    -testPackages oop(20) == nil
    -updates oop(20) == nil
    -updateType oop(20) == nil

temporary variables and parameters:
    collection oop(93414657) == anArray( anArray( aRowanProjectService:Rowan, aRowanProjectService:STON, aRowanProjectService:Cypress, aRowanProjectService:FileSystemGs, aRowanProjectService:Tonel), anOrderedCollection( aRowanPackag...
    symbol oop(48008705) == #'reloadProjects:andUpdateServices:'
----------------------------------------------------
[29] [] in JadeServer >> updateFromSton: @31 line 12
    receiver oop(93416449) == anExecBlock1

instance variables:

temporary variables and parameters:
    organizer oop(93421825) == aClassOrganizer
    service oop(93416961) == aRowanBrowserService
----------------------------------------------------
[30] OrderedCollection (Collection) >> do: @6 line 10
    receiver oop(93416705) == anOrderedCollection( aRowanLoggingService, aRowanBrowserService)

instance variables:

temporary variables and parameters:
    aBlock oop(93416449) == anExecBlock1
    i oop(18) == 2
----------------------------------------------------
[31] [] in JadeServer >> updateFromSton: @20 line 8
    receiver oop(93420289) == anExecBlock0

instance variables:

temporary variables and parameters:
    services oop(93416705) == anOrderedCollection( aRowanLoggingService, aRowanBrowserService)
----------------------------------------------------
[32] ExecBlock0 (ExecBlock) >> on:do: @3 line 44
    receiver oop(93420289) == anExecBlock0

instance variables:

temporary variables and parameters:
    exceptionSelector oop(47678465) == GsInteractionRequest
    fastPath oop(268) == true
    handlerBlock oop(93423361) == anExecBlock
----------------------------------------------------
[33] JadeServer64bit35 (JadeServer) >> updateFromSton: @9 line 13
    receiver oop(92593665) == aJadeServer64bit35

instance variables:
    -classList oop(20) == nil
    -classOrganizers oop(93424641) == anArray( nil, nil, nil, nil)
    -environment oop(2) == 0
    -methodCommandResult oop(20) == nil
    -methodFilters oop(20) == nil
    -methodFilterType oop(20) == nil
    -readStream oop(20) == nil
    -selectedClass oop(20) == nil
    -selections oop(20) == nil
    -writeStream oop(20) == nil

temporary variables and parameters:
    organizer oop(93421825) == aClassOrganizer
    resultString oop(20) == nil
    services oop(93416705) == anOrderedCollection( aRowanLoggingService, aRowanBrowserService)
    stonString oop(82219777) == 'OrderedCollection[RowanLoggingService{#command:#logReceivedServices,#commandArgs:[],#id:0,#groupId:71,#services:OrderedCollection[RowanBrowserService{#command:#''reloadProjects:andUpdateServices:'',#...
----------------------------------------------------
[34] GsNMethod class >> _gsReturnToC @1 line 1
    receiver oop(144897) == GsNMethod

instance variables:

temporary variables and parameters:
dalehenrich commented 4 years ago

Interesting anomaly noted while characterizing this bug ... large number of classesWithPropertyChanges and classesWithClassVariableChanges, yet looking at the diff between 869fc25f and ba6a4221 I haven't seen any *explicit changes to class properties ...

reported as #558...

dalehenrich commented 4 years ago

Here's the analysis of the state of RwGsPatchSet_254 at the point of error:

deletedPackages
    aRwPackageDefinition for Rowan-GemStone-SpecificationsV2

extendedClasses
    Collection
    SequenceableCollection
    RwSpecification

classesWithPropertyChanges & classesWithClassVariableChanges & createdClasses (https://github.com/GemTalk/Rowan/issues/558)

addedMethods
    RwProjectComponentVisitorV2Test>>_visitVastTonelDemo_555:projectAlias:projectPath:
    RwResolvedProjectV2 class>>loadSpecification:platformAttributes:
    RwProjectComponentVisitorV2Test>>testVisitVastTonelDemo_555_independent
    RwResolvedProjectV2>>resolve:

deletedMethods
    RwProjectComponentVisitorV2Test>>_visitorClass

movedMethods
    !!!!

extendedMethods
    Collection>>sort:
    RwLoadSpecificationV2>>resolve:
    RwProjectComponentVisitorV2Test>>_readVastTonelDemo_555:deleteClone:
    RwProjectComponentVisitorV2Test>>_cloneVastTonelDemo_555:deleteClone:
    SequenceableCollection>>writeStreamPortable
    RwAbstractProjectLoadComponentV2 class>>fromFile:
    RwProjectComponentVisitorV2Test>>testReadVastTonelDemo_555
    CharacterCollection>>substrings:

methodsWithPropertyChanges
    RwLoadSpecificationV2>>gemstoneSetDefaultUseSessionMethodsForExtensionsForUser:to:
    RwLoadSpecificationV2>>gemstoneDefaultMethodEnvForUser:
    RwLoadSpecificationV2>>_gemstoneDefaultMethodEnv
    RwLoadSpecificationV2 class>>_gemstoneAllUsersName
    RwAbstractProjectLoadComponentV2 class>>fromUrl:
    RwLoadSpecificationV2>>gemstoneSetDefaultSymbolDictNameForUser:to:
    RwLoadSpecificationV2>>gemstoneSetDefaultMethodEnvForUser:to:
    RwLoadSpecificationV2>>gemstoneSetDefaultMethodEnvTo:
    ... [ but not Collection>>sort:, which is the method causing the error ]

methodsNeedingRecompile
    RwAbstractReaderWriterVisitor class>>_repositoryPropertyDictFor:
    RwAbstractProjectLoadComponentV2 class>>fromUrl:
    RwSpecification class>>_supportedPlatformNames

The method(s) that are causing the errors are in the list of extendedMethods (Collection>>sort: and SequenceableCollection>>writeStreamPortable have shown up during debugging) ...

extendedMethods are recompiled whether or not the methods have changed source ... and these two cases the method source has not changed and the target class has not changed (only the package membership and method protocols have changed) ...

This particular error was added in this commit and it was added because no check was made for an existing method in the class with the same selector, so it is possible that in the wild two packages could have the same extension method for the same class ... need some explicit tests for this issue ..., so this particular error is more fallout from adding this error condition being added ... the following tests are known to have been failing with the same error message:

dalehenrich commented 4 years ago

The naive test case (RwRowanSample9Test>>testSpec_0016_to_0017) is to simply move an extension method from one package to another, but when that is done, the moved method ends up in movedMethods, not extendedMethods ... and that distinction is important, since the methods in extendedMethods are compiled and movedMethods are not...

dalehenrich commented 4 years ago

Turns out that the methods are ending up in extendedMethods instead of movedMethods, because the methods are coming from a different project (Tonel-GemStone-Kernel) and in the case of my current experiments (so far) I am looking at only loading Rowan, so the methods end up being stolen from the Tonel project and are showing up as extensionMethods in Rowan-GemStone-Components-Kernel ... this implies that the method stealing logic be improved

dalehenrich commented 4 years ago

The logic in RowanProjectService>>reloadProject should be improved to load all selected projects at once, since right now Jadeite is loading one project at a time, so cross-project method moves will always be subjected to this issue ... of course a second alternative is to update the logic surrounding the error message to be more forgiving and/or more intelligent ...

Deferring work until I start tackling multi-project loads in earnest ..

dalehenrich commented 4 years ago

Notes:

869fc25f
    Tonel-GemStone-Kernel
        Collection>>sort:

ba6a4221
    Rowan-GemStone-Components-Kernel
        Collection>>sort:
dalehenrich commented 2 years ago

RwRowanSample9Test >> testIssue830_3b is a relatively simple reproduction of the bug ... in case a simple test case is needed ... in this case, an existing method is NOT in a package. recompile, new method source and move to a package (runs afoul of the hack where the source is checked to see if it is the same).