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 |
AR 50995 covers this issue. I reported it in mail titled "Store Load
Error when Pulling Up Instance Variable" Runar Jordahl |
In reply to this post by Reinout Heeck-2
> <50976.st>
> <50973.st> Thanks! I'll try these out tomorrow. R - |
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 ------- |
Free forum by Nabble | Edit this page |