[Store Bug] loading newer package version with ivar pushed up UHE

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[Store Bug] loading newer package version with ivar pushed up UHE

Reinout Heeck-2
To repeat:

-Create a package for this test
-Create class Foo with two subclasses Bar and Baz where Bar and Baz have
an ivar with the same name.
-Publish the package as version 1
-Use refactoring to push the ivar up to Foo
-Publish the package as version 2
-Load version 1 of the package
-Load version 2 of the package -> UHE


Seen on vw74 and vw741

Reinout
-------


Unhandled exception: Message not understood: #comment
UndefinedObject(Object)>>doesNotUnderstand:
Store.ClassRecord class>>commentFor:
Store.ClassRecord(Store.DefinedRecord)>>loadCommentFor:
Store.ClassRecord>>loadSrcInto:
optimized [] in Store.PackageDifferences>>loadFromDBWithin:
OrderedCollection>>do:
Store.PackageDifferences>>loadFromDBWithin:
optimized [] in [] in Store.Package>>doDiffSourceLoad:within:
BlockClosure>>on:do:
optimized [] in Store.Package>>doDiffSourceLoad:within:
optimized [] in [] in [] in Notice class>>showProgress:complete:while:title:
BlockClosure>>ensure:
Cursor>>showWhile:
optimized [] in [] in Notice class>>showProgress:complete:while:title:
BlockClosure>>on:do:
optimized [] in Notice class>>showProgress:complete:while:title:
BlockClosure>>ensure:
Notice class>>showProgress:complete:while:title:
Store.Package>>doDiffSourceLoad:within:
optimized [] in [] in
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
optimized [] in Store.XMainChangeSet class>>ignoreMainChangesWhile:
BlockClosure>>ensure:
Store.XMainChangeSet class>>ignoreMainChangesWhile:
optimized [] in
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
optimized [] in Store.BasicPackagePolicy>>forcePackage:while:
BlockClosure>>ensure:
Store.BasicPackagePolicy>>forcePackage:while:
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
optimized [] in Store.Package>>sourceLoadFromDBloadWithin:warnReplace:
BlockClosure>>ensure:
SourceFileManager>>target:while:
SourceFileManager>>storeTargetWhile:
Store.Package>>sourceLoadFromDBloadWithin:warnReplace:
Store.Package>>loadWithin:useBinIfAvailable:warnReplace:
Store.Package>>loadSrcWithin:warnReplace:
optimized [] in [] in Store.Package>>loadSrc
BlockClosure>>on:do:
optimized [] in Store.Package>>loadSrc
BlockClosure>>on:do:
Store.Package>>loadSrc
optimized [] in [] in Store.Pundle>>loadSrcWithImgPundle:
BlockClosure>>on:do:
optimized [] in Store.Pundle>>loadSrcWithImgPundle:
BlockClosure>>on:do:
Store.Package(Store.Pundle)>>loadSrcWithImgPundle:
[] in Store.VersionBrowser(Store.AbstractTool)>>loadPundle
OrderedCollection>>do:
Store.VersionBrowser(Store.AbstractTool)>>loadPundle
Store.MultiSequenceController(SequenceController)>>dispatchMenuSymbol:
Store.MultiSequenceController(SequenceController)>>dispatchMenuSelection:
Store.MultiSequenceController(ControllerWithMenu)>>processMenu:at:centered:
Store.MultiSequenceController(ControllerWithMenu)>>processMenuAt:centered:
Store.MultiSequenceController(ControllerWithMenu)>>yellowButtonPressedEvent:
Store.MultiSequenceController(SequenceController)>>yellowButtonPressedEvent:
YellowButtonPressedEvent>>dispatchTo:
Store.MultiSequenceController(ControllerWithMenu)>>handleEvent:
EventDispatcher>>dispatch:to:
EventDispatcher>>dispatchEvent:
YellowButtonPressedEvent(Event)>>dispatch
YellowButtonPressedEvent(Event)>>dispatchForWindowManager:
optimized [] in WindowManager>>safelyDispatchForWindowManager:
BlockClosure>>on:do:
WindowManager>>safelyDispatchForWindowManager:
WindowManager>>processNextEvent
optimized [] in [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
UndefinedObject(Object)>>doesNotUnderstand:
Receiver:
        an UndefinedObject
Arguments:
        aMessage = a Message with selector: #comment and arguments: #()
Temporaries:
        excpt = a MessageNotUnderstood
        resumeValue = nil
Context PC = 25

----------------------------------------------------------------------
Store.ClassRecord class>>commentFor:
Receiver:
        a Store.ClassRecord class
Instance Variables:
        superclass = Store.DefinedRecord
        methodDict = a MethodDictionary[52]
        format = 16398
        subclasses = nil
        instanceVariables = an Array[1]
        organization = ('converting' #asCommentTag #asDescriptor #asTag)
('testing' #isClass #isForClass #isMeta)
('printing' #displayString #printOn:)
('public interface' #browseVersions #loadComment
#loadComponents:meta:package: #loadComponents:package: #loadFrom:using:
#loadSrc #loadSrcInto: #myClass #removeFromPackage:)
('browser support' #asString #binding #simpleName #value #valueOrDo:)
('accessing' #absoluteName #className #classNameWithMeta
#fileOutObjectType #fullName #fullNameOnly #instanceBehavior #nameOnly
#object #realname #setCommentFor: #superclass #superclass: #symbol
#textRepresentationForTag: #versions)
('db-utilities' #containingPackages #instSideFrom: #metaSideFrom:
#oppositeSideFrom:)
('private' #convertFromXML: #convertToXML: #loadDefinition:into:logged:
#loadSrcIntoPackage:confirm: #move:to:)
('comparing' #comparesTo: #objectIsForSelf: #quickComparesTo:
#sameAsImThing: #sourceMatches:)

        name = #ClassRecord
        classPool = a NameSpaceOfClass[0]
        environment = a NameSpace[232]
        table = nil
        nextIndex = nil
        SequenceGeneratorSession = an OracleSession( hstmt = 1068CD8 )
        PrimaryKeySession = nil
Arguments:
        aClass = nil
Context PC = 4

----------------------------------------------------------------------
Store.ClassRecord(Store.DefinedRecord)>>loadCommentFor:
Receiver:
        a Store.ClassRecord
Instance Variables:
        primaryKey = 869450
        name = 'Foo'
        timeStamp = 409724581
        version = an Object
        userName = 'reinout'
        trace = 869444
        dbIdentifier = nil
        definitionID = 2335745
        commentID = 0
        environmentString = 'Root.Smalltalk'
        definitionStr = 'Smalltalk defineClass: #Foo
        ...ackageToDemonstrateStoreBug'''
        commentStr = ''
        package = nil
        superclass = 'Root.Smalltalk.Core.Object'
Arguments:
        aLoadedRecord = nil
Context PC = 6

----------------------------------------------------------------------
Store.ClassRecord>>loadSrcInto:
Receiver:
        a Store.ClassRecord
Instance Variables:
        primaryKey = 869450
        name = 'Foo'
        timeStamp = 409724581
        version = an Object
        userName = 'reinout'
        trace = 869444
        dbIdentifier = nil
        definitionID = 2335745
        commentID = 0
        environmentString = 'Root.Smalltalk'
        definitionStr = 'Smalltalk defineClass: #Foo
        ...ackageToDemonstrateStoreBug'''
        commentStr = ''
        package = nil
        superclass = 'Root.Smalltalk.Core.Object'
Arguments:
        imgPackage = [PackageToDemonstrateStoreBug]
Temporaries:
        class = nil
Context PC = 19

----------------------------------------------------------------------
optimized [] in Store.PackageDifferences>>loadFromDBWithin:
Receiver:
        an UndefinedObject
Arguments:
        each = ClassRecord{869450-Foo}
Temporaries:
        .self = a Store.PackageDifferences
Context PC = 7

----------------------------------------------------------------------
OrderedCollection>>do:
Receiver:
        an OrderedCollection
Instance Variables:
        firstIndex = 1
        lastIndex = 3
Arguments:
        aBlock = BlockClosure [] in Store.PackageDifferences>>loadFromDBWithin:
Temporaries:
        index = 1
Context PC = 17

----------------------------------------------------------------------
Store.PackageDifferences>>loadFromDBWithin:
Receiver:
        a Store.PackageDifferences
Instance Variables:
        classes1 = an OrderedCollection[3]
        classes2 = an OrderedCollection[3]
        meta1 = an OrderedCollection[0]
        meta2 = an OrderedCollection[0]
        nameSpaces1 = an OrderedCollection[0]
        nameSpaces2 = an OrderedCollection[0]
        methods1 = an OrderedCollection[0]
        methods2 = an OrderedCollection[0]
        data1 = an OrderedCollection[0]
        data2 = an OrderedCollection[0]
        pkg1 = {'PackageToDemonstrateStoreBug'-'2'-59029}
        pkg2 = [PackageToDemonstrateStoreBug]
Arguments:
        parentBundle = nil
Temporaries:
        toLoad = an OrderedCollection[3]
        affected = nil
        toInit = nil
        parentLeafItems = nil
Context PC = 20

----------------------------------------------------------------------
optimized [] in [] in Store.Package>>doDiffSourceLoad:within:
Receiver:
        an UndefinedObject
Temporaries:
        .diffs = a Store.PackageDifferences
        .parentBundle = nil
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in Store.Package>>doDiffSourceLoad:within:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = Store.UnloadableDefinitionError
        handlerBlock = BlockClosure [] in [] in
Store.Package>>doDiffSourceLoad:within:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Store.Package>>doDiffSourceLoad:within:
Receiver:
        an UndefinedObject
Temporaries:
        .diffs = a Store.PackageDifferences
        .parentBundle = nil
        .imPkg = [PackageToDemonstrateStoreBug]
        .unloadable = an OrderedCollection[1]
Context PC = 16

----------------------------------------------------------------------
optimized [] in [] in [] in Notice class>>showProgress:complete:while:title:
Receiver:
        an UndefinedObject
Temporaries:
        .aBlock = BlockClosure [] in Store.Package>>doDiffSourceLoad:within:
        res = nil
        newValue = 0.333333
Context PC = 5

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in [] in Notice
class>>showProgress:complete:while:title:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        aBlock = BlockClosure [] in Cursor>>showWhile:
Temporaries:
        result = nil
Context PC = 4

----------------------------------------------------------------------
Cursor>>showWhile:
Receiver:
        a Cursor
Instance Variables:
        errorCode = 0
        handle = 4
        image = Depth1Image(extent: 16@16 depth: 1)
        mask = Depth1Image(extent: 16@16 depth: 1)
        hotSpot = 0@0
        name = 'wait'
Arguments:
        aBlock = BlockClosure [] in [] in [] in Notice
class>>showProgress:complete:while:title:
Temporaries:
        oldcursor = Cursor normal
Context PC = 23

----------------------------------------------------------------------
optimized [] in [] in Notice class>>showProgress:complete:while:title:
Receiver:
        an UndefinedObject
Temporaries:
        .aBlock = BlockClosure [] in Store.Package>>doDiffSourceLoad:within:
        res = nil
        newValue = 0.333333
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in Notice
class>>showProgress:complete:while:title:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = IncrementNotification
        handlerBlock = BlockClosure [] in [] in Notice
class>>showProgress:complete:while:title:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Notice class>>showProgress:complete:while:title:
Receiver:
        an UndefinedObject
Temporaries:
        .aBlock = BlockClosure [] in Store.Package>>doDiffSourceLoad:within:
        res = nil
        newValue = 0.333333
        .noticeModel = a Notice
        .progress = a ValueHolder on: 0.333333
        .increment = 0.333333
        .title = 'Store : <1s>%% done'
Context PC = 19

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in Notice
class>>showProgress:complete:while:title:
        outerContext = nil
        copiedValues = an Array[6]
Arguments:
        aBlock = BlockClosure [] in Notice
class>>showProgress:complete:while:title:
Temporaries:
        result = nil
Context PC = 4

----------------------------------------------------------------------
Notice class>>showProgress:complete:while:title:
Receiver:
        a Notice class
Instance Variables:
        superclass = ApplicationModel
        methodDict = a MethodDictionary[9]
        format = 16390
        subclasses = nil
        instanceVariables = an Array[2]
        organization = ('interface opening' #postOpenWith:)
('aspects' #message: #notice #show: #textView)
('updating' #changedMessages)
('private' #invokePostOpen #on:)
('interface closing' #requestForWindowClose)

        name = #Notice
        classPool = a NameSpaceOfClass[0]
        environment = a NameSpace[564]
        savedWindowInformation = an IdentityDictionary[0]
Arguments:
        aString = 'Loading package PackageToDemonstrateStoreBug'
        anInteger = 3
        aBlock = BlockClosure [] in Store.Package>>doDiffSourceLoad:within:
        titleString = 'Store'
Temporaries:
        noticeModel = a Notice
        int = 3
        increment = 0.333333
        progress = a ValueHolder on: 0.333333
        res = nil
        title = 'Store : <1s>%% done'
        newValue = 0.333333
Context PC = 123

----------------------------------------------------------------------
Store.Package>>doDiffSourceLoad:within:
Receiver:
        a Store.Package
Instance Variables:
        primaryKey = 59029
        name = 'PackageToDemonstrateStoreBug'
        timeStamp = 409724581
        version = '2'
        userName = 'reinout'
        trace = 59028
        dbIdentifier = #Soops741
        blessingLevel = 20
        commentID = 0
        propertiesID = 0
        properties = an IdentityDictionary[0]
        propertyRecords = an OrderedCollection[0]
        commentStr = nil
        namespaces = nil
        classes = nil
        metaclasses = nil
        methods = nil
        binFile = nil
        data = nil
        overrides = nil
        parcelID = nil
Arguments:
        imPkg = [PackageToDemonstrateStoreBug]
        parentBundle = nil
Temporaries:
        diffs = a Store.PackageDifferences
        unloadable = an OrderedCollection[1]
Context PC = 43

----------------------------------------------------------------------
optimized [] in [] in
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
Receiver:
        an UndefinedObject
Temporaries:
        .imPkg = [PackageToDemonstrateStoreBug]
        .parentBundle = nil
        .self = {'PackageToDemonstrateStoreBug'-'2'-59029}
        loadRes = nil
Context PC = 56

----------------------------------------------------------------------
optimized [] in Store.XMainChangeSet class>>ignoreMainChangesWhile:
Receiver:
        an UndefinedObject
Temporaries:
        .aBlock = BlockClosure [] in [] in
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
Context PC = 9

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in Store.XMainChangeSet
class>>ignoreMainChangesWhile:
        outerContext = nil
        copiedValues = BlockClosure [] in [] in
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
Arguments:
        aBlock = BlockClosure [] in Store.XMainChangeSet
class>>ignoreMainChangesWhile:
Temporaries:
        result = nil
Context PC = 4

----------------------------------------------------------------------
Store.XMainChangeSet class>>ignoreMainChangesWhile:
Receiver:
        a Store.XMainChangeSet class
Instance Variables:
        superclass = Store.XChangeSet
        methodDict = a MethodDictionary[109]
        format = 20486
        subclasses = nil
        instanceVariables = an Array[2]
        organization = ('public-method changes' #addSelector:class:toPackage:
#changeSelector:class:toPackage: #correctSelector:class:toPackage:
#removeSelector:class: #removeSelector:class:fromPackage:
#removeSelectorChanges:class: #revertData:owner: #revertSelector:class:)
('public-data changes' #addDataKey:class:package:
#addDataKey:nameSpace:package: #changeDataKey:class:
#changeDataKey:class:package: #changeDataKey:nameSpace:
#changeDataKey:nameSpace:package: #relocateBinding:from:to:
#removeBinding:in: #removeChangesDataKey:class: #removeDataKey:class:
#removeDataKey:class:from: #removeDataKey:nameSpace:
#removeDataKey:nameSpace:from: #renameBinding:in:as:)
('public-fileIn/Out' #putStatsOn:)
('public-other changes' #addDoIt: #addPatch: #removeDoIt:
#reorganizeClassData: #reorganizeSystem)
('public-testing' #isEmpty #isMainChangeSet)
('public-package movement' #moveClassDefinition:from:toPackage:
#moveClassDefinition:toPackage: #moveClassModel:to:
#moveClassName:from:to: #moveDataKey:class:toPackage:
#moveDataKey:nameSpace:toPackage: #moveDataKey:owner:toPackage:
#moveDefinition:toPackage: #moveNameSpaceDefinition:from:toPackage:
#moveNameSpaceDefinition:toPackage: #moveNameSpaceModel:to:
#moveObject:from:to: #moveSelector:class:fromPackage:
#moveSelector:class:toPackage: #moveSelectors:class:toPackage:
#moveUnpackagedClassDefinition:toPackage:
#moveUnpackagedDataKey:nameSpace:toPackage:
#moveUnpackagedInWholeClass:toPackage:
#moveUnpackagedInWholeNameSpace:toPackage:
#moveUnpackagedNameSpaceDefinition:toPackage:
#moveUnpackagedSelector:class:toPackage: #moveWholeClass:toPackage:
#moveWholeNameSpace:toPackage: #moveWholeObject:toPackage:)
('events' #addBinding:in: #addBinding:in:attributes: #addClass:
#addClass:attributes: #addNameSpace: #addNameSpace:attributes:
#addSelector:class: #addSelector:class:attributes: #changeBinding:in:
#changeBinding:in:attributes: #changeClass: #changeClass:attributes:
#changeNameSpace: #changeNameSpace:attributes: #changeSelector:class:
#changeSelector:class:attributes: #changeSelector:class:documentation:
#changeSelector:class:protocol: #packageFromAttributes:
#processShadowCache #reorganizeClass: #update:with:from:)
('public-namespace changes' #addNameSpace:toPackage:
#addNameSpaceDefinition:toPackage: #changeNameSpace:toPackage:
#commentNameSpace: #component:property:value: #component:renamedTo:
#relocateNameSpace:from:to: #removeNameSpace: #renameNameSpace:as:
#reorganizeNameSpace:)
('public-class changes' #addClass:toPackage:
#addClassDefinition:toPackage: #changeClass:toPackage:
#changeDefinitionClass: #commentClass: #relocateClass:from:to:
#removeChangesPropagatingClass: #removeClass: #removeClass:from:
#removeClassChanges: #renameClass:as:)
('private- cascade changes' #cascadeRelocateNameSpace:to:
#renameClass:asAbsoluteSymbol: #renameNameSpace:asAbsoluteSymbol:)
('private-fileIn/Out' #fileOutSpecialOn:)
('events-parcels' #installedClasses:toPackage:
#installedMethods:toPackage: #installedNameSpaces:toPackage:
#installedOverrideMethods:toPackage:)
('db phantoms' #addRemoveClass:package: #addRemoveNameSpace:package:
#addRemoveSelector:className:meta:package:
#addRemoveStatic:ownerName:isInNameSpace:package:)

        name = #XMainChangeSet
        classPool = a NameSpaceOfClass[1]
        environment = a NameSpace[232]
Arguments:
        aBlock = BlockClosure [] in [] in
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
Temporaries:
        currentCS = a Store.XMainChangeSet[977]
Context PC = 15

----------------------------------------------------------------------
optimized [] in
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
Receiver:
        an UndefinedObject
Temporaries:
        .imPkg = [PackageToDemonstrateStoreBug]
        .parentBundle = nil
        .self = {'PackageToDemonstrateStoreBug'-'2'-59029}
        loadRes = nil
Context PC = 12

----------------------------------------------------------------------
optimized [] in Store.BasicPackagePolicy>>forcePackage:while:
Receiver:
        an UndefinedObject
Temporaries:
        .aPackage = [PackageToDemonstrateStoreBug]
        .self = a Store.BasicPackagePolicy
        .aBlock = BlockClosure [] in
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
        retVal = nil
Context PC = 8

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in Store.BasicPackagePolicy>>forcePackage:while:
        outerContext = nil
        copiedValues = an Array[4]
Arguments:
        aBlock = BlockClosure [] in Store.BasicPackagePolicy>>forcePackage:while:
Temporaries:
        result = nil
Context PC = 4

----------------------------------------------------------------------
Store.BasicPackagePolicy>>forcePackage:while:
Receiver:
        a Store.BasicPackagePolicy
Instance Variables:
        alwaysUse = [PackageToDemonstrateStoreBug]
        newClassUseCurrent = true
        newNameSpaceUseCurrent = nil
        newMethodUseCurrent = true
        newMethodUseClassIfNoCurrent = nil
        newMethodUseClassIfCurrentSame = false
        newMethodUseClass = true
        newDatumUseCurrent = true
        newDatumUseClassIfNoCurrent = nil
        newDatumUseClassIfCurrentSame = nil
        newDatumUseClass = true
        warnOnFirstModification = nil
Arguments:
        aPackage = [PackageToDemonstrateStoreBug]
        aBlock = BlockClosure [] in
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
Temporaries:
        old = nil
        retVal = nil
Context PC = 20

----------------------------------------------------------------------
Store.Package>>cincomOrg_sourceLoadFromDBloadWithin:warnReplace:
Receiver:
        a Store.Package
Instance Variables:
        primaryKey = 59029
        name = 'PackageToDemonstrateStoreBug'
        timeStamp = 409724581
        version = '2'
        userName = 'reinout'
        trace = 59028
        dbIdentifier = #Soops741
        blessingLevel = 20
        commentID = 0
        propertiesID = 0
        properties = an IdentityDictionary[0]
        propertyRecords = an OrderedCollection[0]
        commentStr = nil
        namespaces = nil
        classes = nil
        metaclasses = nil
        methods = nil
        binFile = nil
        data = nil
        overrides = nil
        parcelID = nil
Arguments:
        parentBundle = nil
        warnReplace = true
Temporaries:
        imPkg = [PackageToDemonstrateStoreBug]
        loadRes = nil
Context PC = 34

----------------------------------------------------------------------
optimized [] in Store.Package>>sourceLoadFromDBloadWithin:warnReplace:
Receiver:
        an UndefinedObject
Temporaries:
        .self = {'PackageToDemonstrateStoreBug'-'2'-59029}
        .parentBundle = nil
        .warnReplace = true
        result = nil
Context PC = 8

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in
Store.Package>>sourceLoadFromDBloadWithin:warnReplace:
        outerContext = nil
        copiedValues = an Array[4]
Arguments:
        aBlock = BlockClosure [] in SourceFileManager>>target:while:
Temporaries:
        result = nil
Context PC = 4

----------------------------------------------------------------------
SourceFileManager>>target:while:
Receiver:
        a SourceFileManager
Instance Variables:
        files = an IdentityDictionary[3]
        names = a LargeArray[8192]
        writableIndices = a Set[2]
        openIndices = an OrderedCollection[3]
        currentTarget = 4
        isPadding = false
        sourceFormatters = a LargeArray[8192]
        sourceToCopy = nil
Arguments:
        anIndex = 4
        aBlock = BlockClosure [] in
Store.Package>>sourceLoadFromDBloadWithin:warnReplace:
Temporaries:
        old = 2
Context PC = 14

----------------------------------------------------------------------
SourceFileManager>>storeTargetWhile:
Receiver:
        a SourceFileManager
Instance Variables:
        files = an IdentityDictionary[3]
        names = a LargeArray[8192]
        writableIndices = a Set[2]
        openIndices = an OrderedCollection[3]
        currentTarget = 4
        isPadding = false
        sourceFormatters = a LargeArray[8192]
        sourceToCopy = nil
Arguments:
        aBlock = BlockClosure [] in
Store.Package>>sourceLoadFromDBloadWithin:warnReplace:
Context PC = 12

----------------------------------------------------------------------
Store.Package>>sourceLoadFromDBloadWithin:warnReplace:
Receiver:
        a Store.Package
Instance Variables:
        primaryKey = 59029
        name = 'PackageToDemonstrateStoreBug'
        timeStamp = 409724581
        version = '2'
        userName = 'reinout'
        trace = 59028
        dbIdentifier = #Soops741
        blessingLevel = 20
        commentID = 0
        propertiesID = 0
        properties = an IdentityDictionary[0]
        propertyRecords = an OrderedCollection[0]
        commentStr = nil
        namespaces = nil
        classes = nil
        metaclasses = nil
        methods = nil
        binFile = nil
        data = nil
        overrides = nil
        parcelID = nil
Arguments:
        parentBundle = nil
        warnReplace = true
Temporaries:
        result = nil
Context PC = 15

----------------------------------------------------------------------
Store.Package>>loadWithin:useBinIfAvailable:warnReplace:
Receiver:
        a Store.Package
Instance Variables:
        primaryKey = 59029
        name = 'PackageToDemonstrateStoreBug'
        timeStamp = 409724581
        version = '2'
        userName = 'reinout'
        trace = 59028
        dbIdentifier = #Soops741
        blessingLevel = 20
        commentID = 0
        propertiesID = 0
        properties = an IdentityDictionary[0]
        propertyRecords = an OrderedCollection[0]
        commentStr = nil
        namespaces = nil
        classes = nil
        metaclasses = nil
        methods = nil
        binFile = nil
        data = nil
        overrides = nil
        parcelID = nil
Arguments:
        parentBundle = nil
        binOK = true
        warnReplace = true
Temporaries:
        imPkg = nil
Context PC = 20

----------------------------------------------------------------------
Store.Package>>loadSrcWithin:warnReplace:
Receiver:
        a Store.Package
Instance Variables:
        primaryKey = 59029
        name = 'PackageToDemonstrateStoreBug'
        timeStamp = 409724581
        version = '2'
        userName = 'reinout'
        trace = 59028
        dbIdentifier = #Soops741
        blessingLevel = 20
        commentID = 0
        propertiesID = 0
        properties = an IdentityDictionary[0]
        propertyRecords = an OrderedCollection[0]
        commentStr = nil
        namespaces = nil
        classes = nil
        metaclasses = nil
        methods = nil
        binFile = nil
        data = nil
        overrides = nil
        parcelID = nil
Arguments:
        parentBundle = nil
        warnReplace = true
Context PC = 28

----------------------------------------------------------------------
optimized [] in [] in Store.Package>>loadSrc
Receiver:
        an UndefinedObject
Temporaries:
        .self = {'PackageToDemonstrateStoreBug'-'2'-59029}
        imgPackage = nil
Context PC = 8

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in Store.Package>>loadSrc
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = RedefinitionNotification
        handlerBlock = BlockClosure [] in [] in Store.Package>>loadSrc
Context PC = 18

----------------------------------------------------------------------
optimized [] in Store.Package>>loadSrc
Receiver:
        an UndefinedObject
Temporaries:
        .self = {'PackageToDemonstrateStoreBug'-'2'-59029}
        imgPackage = nil
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in Store.Package>>loadSrc
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = Store.LogIndentRequest
        handlerBlock = BlockClosure [] in Store.Package>>loadSrc
Context PC = 18

----------------------------------------------------------------------
Store.Package>>loadSrc
Receiver:
        a Store.Package
Instance Variables:
        primaryKey = 59029
        name = 'PackageToDemonstrateStoreBug'
        timeStamp = 409724581
        version = '2'
        userName = 'reinout'
        trace = 59028
        dbIdentifier = #Soops741
        blessingLevel = 20
        commentID = 0
        propertiesID = 0
        properties = an IdentityDictionary[0]
        propertyRecords = an OrderedCollection[0]
        commentStr = nil
        namespaces = nil
        classes = nil
        metaclasses = nil
        methods = nil
        binFile = nil
        data = nil
        overrides = nil
        parcelID = nil
Temporaries:
        imgPackage = nil
        indent = 1
Context PC = 33

----------------------------------------------------------------------
optimized [] in [] in Store.Pundle>>loadSrcWithImgPundle:
Receiver:
        an UndefinedObject
Temporaries:
        .self = {'PackageToDemonstrateStoreBug'-'2'-59029}
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in Store.Pundle>>loadSrcWithImgPundle:
        outerContext = nil
        copiedValues = {'PackageToDemonstrateStoreBug'-'2'-59029}
Arguments:
        anExceptionSelector = Store.CheckPrerequisite
        handlerBlock = BlockClosure [] in [] in Store.Pundle>>loadSrcWithImgPundle:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Store.Pundle>>loadSrcWithImgPundle:
Receiver:
        an UndefinedObject
Temporaries:
        .self = {'PackageToDemonstrateStoreBug'-'2'-59029}
        .preReqStack = an OrderedCollection[0]
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in Store.Pundle>>loadSrcWithImgPundle:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = Store.FinishedPrerequisiteCheck
        handlerBlock = BlockClosure [] in Store.Pundle>>loadSrcWithImgPundle:
Context PC = 18

----------------------------------------------------------------------
Store.Package(Store.Pundle)>>loadSrcWithImgPundle:
Receiver:
        a Store.Package
Instance Variables:
        primaryKey = 59029
        name = 'PackageToDemonstrateStoreBug'
        timeStamp = 409724581
        version = '2'
        userName = 'reinout'
        trace = 59028
        dbIdentifier = #Soops741
        blessingLevel = 20
        commentID = 0
        propertiesID = 0
        properties = an IdentityDictionary[0]
        propertyRecords = an OrderedCollection[0]
        commentStr = nil
        namespaces = nil
        classes = nil
        metaclasses = nil
        methods = nil
        binFile = nil
        data = nil
        overrides = nil
        parcelID = nil
Arguments:
        imgPundle = [PackageToDemonstrateStoreBug]
Temporaries:
        preReqStack = an OrderedCollection[0]
Context PC = 51

----------------------------------------------------------------------
[] in Store.VersionBrowser(Store.AbstractTool)>>loadPundle
Receiver:
        a Store.VersionBrowser
Instance Variables:
        dependents = an ApplicationWindow 1063
        builder = an UIBuilder
        uiSession = a ControlManager
        eventHandlers = nil
        versions = a MultiSelectionInList
        pundles = an OrderedCollection[1]
        labels = a Dictionary[3]
        offsets = an Array[3]
        comment = a ValueHolder on: '--- Blessed: Development
--- By: reinout
--- On: 08/10/2006 13:42:48.000


'
Arguments:
        pundle = {'PackageToDemonstrateStoreBug'-'2'-59029}
Temporaries:
        imgPundle = [PackageToDemonstrateStoreBug]
        .msg = '<1s> is not linked to the cur...>Do you want to do that now?'
        .self = a Store.VersionBrowser
Context PC = 76

----------------------------------------------------------------------
OrderedCollection>>do:
Receiver:
        an OrderedCollection
Instance Variables:
        firstIndex = 1
        lastIndex = 1
Arguments:
        aBlock = BlockClosure [] in Store.AbstractTool>>loadPundle
Temporaries:
        index = 1
Context PC = 17

----------------------------------------------------------------------
Store.VersionBrowser(Store.AbstractTool)>>loadPundle
Receiver:
        a Store.VersionBrowser
Instance Variables:
        dependents = an ApplicationWindow 1063
        builder = an UIBuilder
        uiSession = a ControlManager
        eventHandlers = nil
        versions = a MultiSelectionInList
        pundles = an OrderedCollection[1]
        labels = a Dictionary[3]
        offsets = an Array[3]
        comment = a ValueHolder on: '--- Blessed: Development
--- By: reinout
--- On: 08/10/2006 13:42:48.000


'
Temporaries:
        msg = '<1s> is not linked to the cur...>Do you want to do that now?'
        imgPundle = [PackageToDemonstrateStoreBug]
Context PC = 17

----------------------------------------------------------------------
Store.MultiSequenceController(SequenceController)>>dispatchMenuSymbol:
Receiver:
        a Store.MultiSequenceController
Instance Variables:
        model = a ValueHolder on: List ([PackageToDemonstrateStoreBug]
{'PackageToDemonstrateStoreBug'-'2'-59029}
{'PackageToDemonstrateStoreBug'-'1'-59028})
        view = a MultiSelectionSequenceView
        sensor = a TranslatingSensor
        menuHolder = a Menu
        performer = a Store.VersionBrowser
        keyboardProcessor = a KeyboardProcessor
        outside = false
        searchString = nil
        keyboardHook = nil
        doStringSearching = true
        dispatcher = an UIDispatcher
        dragDropCallbacks = nil
        selectOnDownWithDrag = false
        autoSelect = nil
Arguments:
        menuSelection = #loadPundle
Context PC = 7

----------------------------------------------------------------------
Store.MultiSequenceController(SequenceController)>>dispatchMenuSelection:
Receiver:
        a Store.MultiSequenceController
Instance Variables:
        model = a ValueHolder on: List ([PackageToDemonstrateStoreBug]
{'PackageToDemonstrateStoreBug'-'2'-59029}
{'PackageToDemonstrateStoreBug'-'1'-59028})
        view = a MultiSelectionSequenceView
        sensor = a TranslatingSensor
        menuHolder = a Menu
        performer = a Store.VersionBrowser
        keyboardProcessor = a KeyboardProcessor
        outside = false
        searchString = nil
        keyboardHook = nil
        doStringSearching = true
        dispatcher = an UIDispatcher
        dragDropCallbacks = nil
        selectOnDownWithDrag = false
        autoSelect = nil
Arguments:
        menuSelection = #loadPundle
Context PC = 14

----------------------------------------------------------------------
Store.MultiSequenceController(ControllerWithMenu)>>processMenu:at:centered:
Receiver:
        a Store.MultiSequenceController
Instance Variables:
        model = a ValueHolder on: List ([PackageToDemonstrateStoreBug]
{'PackageToDemonstrateStoreBug'-'2'-59029}
{'PackageToDemonstrateStoreBug'-'1'-59028})
        view = a MultiSelectionSequenceView
        sensor = a TranslatingSensor
        menuHolder = a Menu
        performer = a Store.VersionBrowser
        keyboardProcessor = a KeyboardProcessor
        outside = false
        searchString = nil
        keyboardHook = nil
        doStringSearching = true
        dispatcher = an UIDispatcher
        dragDropCallbacks = nil
        selectOnDownWithDrag = false
        autoSelect = nil
Arguments:
        aMenu = a Menu
        aPoint = 373@262
        centered = true
Temporaries:
        valueResult = a MenuItem 'Load'
Context PC = 41

----------------------------------------------------------------------
Store.MultiSequenceController(ControllerWithMenu)>>processMenuAt:centered:
Receiver:
        a Store.MultiSequenceController
Instance Variables:
        model = a ValueHolder on: List ([PackageToDemonstrateStoreBug]
{'PackageToDemonstrateStoreBug'-'2'-59029}
{'PackageToDemonstrateStoreBug'-'1'-59028})
        view = a MultiSelectionSequenceView
        sensor = a TranslatingSensor
        menuHolder = a Menu
        performer = a Store.VersionBrowser
        keyboardProcessor = a KeyboardProcessor
        outside = false
        searchString = nil
        keyboardHook = nil
        doStringSearching = true
        dispatcher = an UIDispatcher
        dragDropCallbacks = nil
        selectOnDownWithDrag = false
        autoSelect = nil
Arguments:
        aPoint = 373@262
        centered = true
Context PC = 9

----------------------------------------------------------------------
Store.MultiSequenceController(ControllerWithMenu)>>yellowButtonPressedEvent:
Receiver:
        a Store.MultiSequenceController
Instance Variables:
        model = a ValueHolder on: List ([PackageToDemonstrateStoreBug]
{'PackageToDemonstrateStoreBug'-'2'-59029}
{'PackageToDemonstrateStoreBug'-'1'-59028})
        view = a MultiSelectionSequenceView
        sensor = a TranslatingSensor
        menuHolder = a Menu
        performer = a Store.VersionBrowser
        keyboardProcessor = a KeyboardProcessor
        outside = false
        searchString = nil
        keyboardHook = nil
        doStringSearching = true
        dispatcher = an UIDispatcher
        dragDropCallbacks = nil
        selectOnDownWithDrag = false
        autoSelect = nil
Arguments:
        event = a YellowButtonPressedEvent
Context PC = 13

----------------------------------------------------------------------
Store.MultiSequenceController(SequenceController)>>yellowButtonPressedEvent:
Receiver:
        a Store.MultiSequenceController
Instance Variables:
        model = a ValueHolder on: List ([PackageToDemonstrateStoreBug]
{'PackageToDemonstrateStoreBug'-'2'-59029}
{'PackageToDemonstrateStoreBug'-'1'-59028})
        view = a MultiSelectionSequenceView
        sensor = a TranslatingSensor
        menuHolder = a Menu
        performer = a Store.VersionBrowser
        keyboardProcessor = a KeyboardProcessor
        outside = false
        searchString = nil
        keyboardHook = nil
        doStringSearching = true
        dispatcher = an UIDispatcher
        dragDropCallbacks = nil
        selectOnDownWithDrag = false
        autoSelect = nil
Arguments:
        event = a YellowButtonPressedEvent
Context PC = 19

----------------------------------------------------------------------
YellowButtonPressedEvent>>dispatchTo:
Receiver:
        a YellowButtonPressedEvent
Instance Variables:
        time = 14786750
        initiator = an EventDispatcher
        window = an ApplicationWindow 1063
        state = 2
        x = 287
        y = 68
        gx = 373
        gy = 262
        buttonNumber = 2
Arguments:
        anObject = a Store.MultiSequenceController
Context PC = 4

----------------------------------------------------------------------
Store.MultiSequenceController(ControllerWithMenu)>>handleEvent:
Receiver:
        a Store.MultiSequenceController
Instance Variables:
        model = a ValueHolder on: List ([PackageToDemonstrateStoreBug]
{'PackageToDemonstrateStoreBug'-'2'-59029}
{'PackageToDemonstrateStoreBug'-'1'-59028})
        view = a MultiSelectionSequenceView
        sensor = a TranslatingSensor
        menuHolder = a Menu
        performer = a Store.VersionBrowser
        keyboardProcessor = a KeyboardProcessor
        outside = false
        searchString = nil
        keyboardHook = nil
        doStringSearching = true
        dispatcher = an UIDispatcher
        dragDropCallbacks = nil
        selectOnDownWithDrag = false
        autoSelect = nil
Arguments:
        anEvent = a YellowButtonPressedEvent
Context PC = 38

----------------------------------------------------------------------
EventDispatcher>>dispatch:to:
Receiver:
        an EventDispatcher
Instance Variables:
        windowController = an ApplicationStandardSystemController
        currentMouseConsumer = nil
        grabbingMouse = false
        keyboardProcessor = a KeyboardProcessor
        lastControlObject = a TextEditorController
        trapList = nil
        state = nil
        repairDamageWhenDebugging = true
        flushQueueAfterError = true
        distributeEventsWhenDebugging = true
        dragDropInProgress = false
        dragDropTracker = nil
        dispatchUnknownEvents = false
Arguments:
        event = a YellowButtonPressedEvent
        object = a Store.MultiSequenceController
Temporaries:
        tmp = nil
Context PC = 10

----------------------------------------------------------------------
EventDispatcher>>dispatchEvent:
Receiver:
        an EventDispatcher
Instance Variables:
        windowController = an ApplicationStandardSystemController
        currentMouseConsumer = nil
        grabbingMouse = false
        keyboardProcessor = a KeyboardProcessor
        lastControlObject = a TextEditorController
        trapList = nil
        state = nil
        repairDamageWhenDebugging = true
        flushQueueAfterError = true
        distributeEventsWhenDebugging = true
        dragDropInProgress = false
        dragDropTracker = nil
        dispatchUnknownEvents = false
Arguments:
        event = a YellowButtonPressedEvent
Temporaries:
        objectWantingControl = a Store.MultiSequenceController
        targetKeyboardProcessor = nil
Context PC = 113

----------------------------------------------------------------------
YellowButtonPressedEvent(Event)>>dispatch
Receiver:
        a YellowButtonPressedEvent
Instance Variables:
        time = 14786750
        initiator = an EventDispatcher
        window = an ApplicationWindow 1063
        state = 2
        x = 287
        y = 68
        gx = 373
        gy = 262
        buttonNumber = 2
Context PC = 16

----------------------------------------------------------------------
YellowButtonPressedEvent(Event)>>dispatchForWindowManager:
Receiver:
        a YellowButtonPressedEvent
Instance Variables:
        time = 14786750
        initiator = an EventDispatcher
        window = an ApplicationWindow 1063
        state = 2
        x = 287
        y = 68
        gx = 373
        gy = 262
        buttonNumber = 2
Arguments:
        aWinMgr = a WindowManager
Context PC = 4

----------------------------------------------------------------------
optimized [] in WindowManager>>safelyDispatchForWindowManager:
Receiver:
        an UndefinedObject
Temporaries:
        .event = a YellowButtonPressedEvent
        .self = a WindowManager
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in WindowManager>>safelyDispatchForWindowManager:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = BadControllerError
        handlerBlock = BlockClosure [] in
WindowManager>>safelyDispatchForWindowManager:
Context PC = 18

----------------------------------------------------------------------
WindowManager>>safelyDispatchForWindowManager:
Receiver:
        a WindowManager
Instance Variables:
        windows = an OrderedCollection[3]
        activeController = nil
        interruptLock = false
        outstandingMetaOrDamage = false
        openInProgress = false
        eventQueue = an EventQueue
        baseProcess = a Process in Semaphore>>wait
        dontFilterEvents = false
Arguments:
        event = a YellowButtonPressedEvent
Context PC = 13

----------------------------------------------------------------------
WindowManager>>processNextEvent
Receiver:
        a WindowManager
Instance Variables:
        windows = an OrderedCollection[3]
        activeController = nil
        interruptLock = false
        outstandingMetaOrDamage = false
        openInProgress = false
        eventQueue = an EventQueue
        baseProcess = a Process in Semaphore>>wait
        dontFilterEvents = false
Temporaries:
        event = a YellowButtonPressedEvent
Context PC = 9

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>newProcess
Receiver:
        an UndefinedObject
Temporaries:
        .self = a WindowManager
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in WindowManager>>newProcess
        outerContext = nil
        copiedValues = a WindowManager
Arguments:
        anExceptionSelector = TerminateException
        handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
Context PC = 18

----------------------------------------------------------------------
optimized [] in WindowManager>>newProcess
Receiver:
        an UndefinedObject
Temporaries:
        .self = a WindowManager
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in WindowManager>>newProcess
        outerContext = nil
        copiedValues = a WindowManager
Arguments:
        anExceptionSelector = TerminateException
        handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Process class>>forBlock:priority:
Receiver:
        an UndefinedObject
Temporaries:
        .aBlock = BlockClosure [] in WindowManager>>newProcess
Context PC = 9

Reply | Threaded
Open this post in threaded view
|

Re: [Store Bug] loading newer package version with ivar pushed up UHE

Runar Jordahl
AR 50995 covers this issue. I reported it in mail titled "Store Load
Error when Pulling Up Instance Variable"

Runar Jordahl

Reply | Threaded
Open this post in threaded view
|

Re: [Store Bug] loading newer package version with ivar pushed up UHE

Reinout Heeck
In reply to this post by Reinout Heeck-2
> <50976.st>
> <50973.st>


Thanks!

I'll try these out tomorrow.

R
-

Reply | Threaded
Open this post in threaded view
|

Re: [Store Bug] loading newer package version with ivar pushed up UHE

Reinout Heeck-2
In reply to this post by Reinout Heeck-2
Robert Westergaard wrote:
> Try the following two change-sets, they should improve things.
>
> 50973.st fixes a bug where unloadble definitions where not being caught
> when loading package was in a bundle.  That is in the most recent lulu
> build.

50973 did not apply to our problem but I loaded it anyway.



> 50976.st fixes the bug where we shouldn't try to load a comment for a
> class that is unloadable.  This is quite likely a duplicate of AR 50995,
> I'll double-check.  50976 is yet unreviewed, but in my minimal testing it
> fixes the problem you describe.
>  

This behaves as only a workaround:
when I rerun my scenario I now don't get an UHE but an Unloadable
Definitions window with an entry for class Foo.
In the window I can accept the definition of Foo without a problem but
the package remains marked as changed.
Reconciling with the DB will now mark my package as unchanged. (Tried on
VW 7.4.1)

So I conclude that the file 50976.st does not fix  AR 50995.


-Create a package for this test
-Create class Foo with two subclasses Bar and Baz where Bar and Baz have
an ivar with the same name.
-Publish the package as version 1
-Use refactoring to push the ivar up to Foo
-Publish the package as version 2
-Load version 1 of the package
-Load version 2 of the package -> UHE (with 50976.st -> Unloadable
Definitions window)


IMO this scenario should not induce unloadable definitions at all.
This is because we are talking about a single package of which both
versions are internally consistent / loadable in a virgin image.
Upgrading from one /internally consistent/ version to the next should
not complain.


To me it seems the problem revolves around the load order of the class
definitions:
-in a virgin image it makes perfect sense to first load the superclass
and then the subclasses
-in an image with version 1 of above package loaded, loading version 2
probably needs to load the subclasses first and the superclass last to
avoid temporarily 'overriding' the ivar in the hierarchy. Alternatively
overriding of ivars could be allowed during load, if these overrides are
not resolved after load a warning could be risen. Perhaps atomic loading
can help here?



Thanks,

Reinout
-------