Hi, I'm using vwnc 7.4.1 on windows xp. I always get an exception (I have copied the stack below, it's fairly long) when trying to remove a class. Don't know what to do now. Thanks for any suggests! Stack copied below(I'm coding in Chinese Character): Unhandled exception: Message not understood: #newLiteralValue: UndefinedObject(Object)>>doesNotUnderstand: Parser>>completeConstant:start: Parser>>arrayLiteralElement Parser>>scanTokens: Store.ClassChanges(Store.Changes)>>oldName Store.XMainChangeSet >>removeClass: optimized [] in Store.XMainChangeSet>>update:with:from: BlockClosure>>on:do: Store.XMainChangeSet>>update:with:from: DependentsCollection>>update:with:from: ChangeSet class(Object)>>changed:with: ChangeSet class>>changed:with: ChangeSet class>>removeClass: NameSpace>>removeObject:recordIn: 大宝藏.D所有个股权息资料库 class(Class)>>removeFromSystem: optimized [] in NameSpace>>removeObject:recordIn: Array(SequenceableCollection)>>do: NameSpace>>removeObject:recordIn: 大宝藏.D总集法聚 class(Class)>>removeFromSystem: BindingReference(GeneralBindingReference)>>removeFromSystem: BindingReference(GeneralBindingReference)>>removeFromSystem Refactory.Browser.RemoveClassChange(Refactory.Browser.RemoveObjectChange)>>primitiveExecute Refactory.Browser.RemoveClassChange(Refactory.Browser.RefactoryObjectChange)>>executeNotifying: Refactory.Browser.RemoveClassChange (Refactory.Browser.RefactoryChange)>>execute optimized [] in [] in Refactory.Browser.RefactoryChangeManager>>performChange: BlockClosure>>on:do: optimized [] in Refactory.Browser.RefactoryChangeManager >>performChange: BlockClosure>>ensure: Refactory.Browser.RefactoryChangeManager>>ignoreChangesWhile: Refactory.Browser.RefactoryChangeManager>>performChange: Refactory.Browser.BrowserNavigator (Refactory.Browser.BrowserApplicationModel)>>performChange: Refactory.Browser.BrowserNavigator>>performChangeWithUpdate: optimized [] in Refactory.Browser.BrowserNavigator>>removeClassNamed: BlockClosure>>ensure: Refactory.Browser.BrowserNavigator(Refactory.Browser.BrowserApplicationModel)>>showWaitCursorWhile: Refactory.Browser.BrowserNavigator>>removeClassNamed: Refactory.Browser.BrowserNavigator>>removeObjectNamed: optimized [] in Refactory.Browser.BrowserNavigator>>removeObject OrderedCollection>>do: Refactory.Browser.BrowserNavigator>>removeObject Refactory.Browser.RBCommand>>perform:on: Refactory.Browser.RBCommand >>performWith: Refactory.Browser.BrowserNavigator(Refactory.Browser.BrowserApplicationModel)>>performAction: Refactory.Browser.BrowserNavigator(Refactory.Browser.BrowserApplicationModel)>>action: optimized [] in Refactory.Browser.BrowserApplicationModel>>createActionMenuItemFrom: EmulatedSequenceController(SequenceController)>>dispatchBlockClosure: EmulatedSequenceController(SequenceController)>>dispatchMenuSelection: EmulatedSequenceController(ControllerWithMenu)>>processMenu:at:centered: EmulatedSequenceController(ControllerWithMenu)>>processMenuAt:centered: EmulatedSequenceController(ControllerWithMenu)>>yellowButtonPressedEvent: EmulatedSequenceController(SequenceController)>>yellowButtonPressedEvent: YellowButtonPressedEvent>>dispatchTo: EmulatedSequenceController(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: #newLiteralValue: and arguments: #(#oldName:) Temporaries: excpt = a MessageNotUnderstood resumeValue = nil Context PC = 25 ---------------------------------------------------------------------- Parser>>completeConstant:start: Receiver: a Parser Instance Variables: source = a ReadStream mark = 10 prevEnd = 8 hereChar = nil token = 'Root.Smalltalk.大宝藏.所有个股权息资料库' tokenType = #compoundWord saveComments = true currentComment = nil buffer = a WriteStream typeTable = a ScannerTable[255] builder = nil requestor = nil oldLanguage = true newLanguage = true extendedLanguage = false parseNode = #oldName: constantNode = nil failBlock = nil endTemps = nil targetClass = nil environment = nil topEnvironment = nil bindingRefs = nil Arguments: value = #oldName: start = 1 Context PC = 10 ---------------------------------------------------------------------- Parser>>arrayLiteralElement Receiver: a Parser Instance Variables: source = a ReadStream mark = 10 prevEnd = 8 hereChar = nil token = 'Root.Smalltalk.大宝藏.所有个股权息资料库 ' tokenType = #compoundWord saveComments = true currentComment = nil buffer = a WriteStream typeTable = a ScannerTable[255] builder = nil requestor = nil oldLanguage = true newLanguage = true extendedLanguage = false parseNode = #oldName: constantNode = nil failBlock = nil endTemps = nil targetClass = nil environment = nil topEnvironment = nil bindingRefs = nil Temporaries: start = nil Context PC = 61 ---------------------------------------------------------------------- Parser>>scanTokens: Receiver: a Parser Instance Variables: source = a ReadStream mark = 10 prevEnd = 8 hereChar = nil token = 'Root.Smalltalk.大宝藏.所有个股权息资料库' tokenType = #compoundWord saveComments = true currentComment = nil buffer = a WriteStream typeTable = a ScannerTable[255] builder = nil requestor = nil oldLanguage = true newLanguage = true extendedLanguage = false parseNode = #oldName: constantNode = nil failBlock = nil endTemps = nil targetClass = nil environment = nil topEnvironment = nil bindingRefs = nil Arguments: textOrString = 'oldName: Root.Smalltalk.大宝藏.所有个股权息资料库' Temporaries: s = a WriteStream Context PC = 28 ---------------------------------------------------------------------- Store.ClassChanges(Store.Changes)>>oldName Receiver: a Store.ClassChanges Instance Variables: symbol = #'Root.Smalltalk.大宝藏.所有个股权息资料库' defChanges = a Set[3] dataChanges = nil methodChanges = an IdentityDictionary[4] metaMethodChanges = nil Temporaries: name = 'oldName: Root.Smalltalk.大宝藏.所有个股权息资料库' Context PC = 19 ---------------------------------------------------------------------- Store.XMainChangeSet >>removeClass: Receiver: a Store.XMainChangeSet Instance Variables: tally = 2787 valueArray = an Array[5623] other = nil properties = nil reorganizeSystem = nil specialDoIts = nil Arguments: class = 大宝藏.D所有个股权息资料库 Temporaries: change = nil classSymbol = #'Root.Smalltalk.大宝藏.D所有个股权息资料库' cc = a Store.ClassChanges Context PC = 22 ---------------------------------------------------------------------- optimized [] in Store.XMainChangeSet>>update:with:from: Receiver: an UndefinedObject Temporaries: .self = a Store.XMainChangeSet[2787] .anAspect = #removeClass: .arguments = an Array[1] Context PC = 8 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in Store.XMainChangeSet>>update:with:from: outerContext = nil copiedValues = an Array[3] Arguments: anExceptionSelector = MessageNotUnderstood handlerBlock = BlockClosure [] in Store.XMainChangeSet >>update:with:from: Context PC = 18 ---------------------------------------------------------------------- Store.XMainChangeSet>>update:with:from: Receiver: a Store.XMainChangeSet Instance Variables: tally = 2787 valueArray = an Array[5623] other = nil properties = nil reorganizeSystem = nil specialDoIts = nil Arguments: anAspect = #removeClass: arguments = an Array[1] anObject = ChangeSet Context PC = 20 ---------------------------------------------------------------------- DependentsCollection>>update:with:from: Receiver: a DependentsCollection Arguments: anAspect = #removeClass: aParameter = an Array[1] anObject = ChangeSet Temporaries: i = 5 Context PC = 22 ---------------------------------------------------------------------- ChangeSet class(Object)>>changed:with: Receiver: a ChangeSet class Instance Variables: superclass = Model methodDict = a MethodDictionary[121] format = 16390 subclasses = an Array[1] instanceVariables = an Array[5] organization = ('initialize-release' #initialize) ('testing' #isCurrent #isEmpty #isRelevantComponentChange: #notEmpty) ('converting' #asSortedCollection) ('change management' #addBinding:in: #addBinding:in:attributes: #addClass: #addClass:attributes: #addDoIt: #addNameSpace: #addNameSpace:attributes: #addPatch: #addSelector:class: #addSelector:class:attributes: #changeBinding:in: #changeBinding:in:attributes: #changeClass: #changeClass:attributes: #changedClassDefinitions #changedClasses #changedNameSpaces #changedObjects #changedStatics #changeNameSpace: #changeNameSpace:attributes: #changeSelector:class: #changeSelector:class:attributes: #changeSelector:class:documentation: #changeSelector:class:protocol: #commentClass: #commentNameSpace: #relocateBinding:from:to: #relocateClass:from:to: #relocateNameSpace:from:to: #removeBinding:in: #removeClass: #removeDoIt: #removeNameSpace: #removeSelector:class: #renameBinding:in:as: #renameClass:as: #renameNameSpace:as: #reorganizeClass: #reorganizeClassData: #reorganizeNameSpace: #update:with:from:) ('change support' #addName:type: #changeName:type: #commentName:type: #removeClassChanges: #removeName:type: #removeNameChanges:type: #renameName:as:type:change: #reorganizeDataInName:type: #reorganizeName:type:) ('method changes' #changedMessageList #removedMethodsDo: #removeSelectorChanges:class:) ('editing' #addChangeSet: #addChangesToChangeList: #removeChangeSet:) ('fileIn/Out' #fileOutChangesFor:on: #fileOutObjectDefinition:on: #fileOutOn: #fileOutSecondaryChangesFor:on: #putStatsOn:) ('printing' #printOn:) ('private' #addClasses:toChangeList:addCode: #atClass:add: #atClass:includes: #atClass:remove: #atName:includes: #atName:type:add: #atName:type:remove: #atNameWasRenamed: #atSelector:class: #atSelector:class:put: #broadcastChangeIfCurrent #classNamed: #hasRemovedClass: #isNewName: #nameOf:in: #newKey:changing:to: #nonMetaClassOf: #objectChanges #objectNamed: #objectRemoves #oldNameFor: #timeStampChange #typeCheck:type:createIfNeeded:) ('user interface' #inspectorClass) ('component changes' #addComponentChange: #bundleMark #codeComponentMarks #componentChangesDo: #componentFromString: #componentKeyFromString: #componentString: #packageMark #parcelMark #removeAllChangesForComponent: #removeComponentChange: #representsComponent:) ('component change management' #bundleStructure: #component:definition:change: #component:definition:selector:change: #component:definition:static:change: #component:definitionName:change: #component:definitionName:meta:selector:change: #component:definitionName:static:change: #component:property:value: #component:renamedTo: #createdComponent: #loadParcel: #loadPundle: #savePundle: #unloadComponent:) ('accessing' #changedClassCount #changedMethodCount) name = #ChangeSet classPool = a NameSpaceOfClass[3] environment = a NameSpace[251] dependents = a DependentsCollection[10] Arguments: anAspectSymbol = #removeClass: aParameter = an Array[1] Context PC = 7 ---------------------------------------------------------------------- ChangeSet class>>changed:with: Receiver: a ChangeSet class Instance Variables: superclass = Model methodDict = a MethodDictionary[121] format = 16390 subclasses = an Array[1] instanceVariables = an Array[5] organization = ('initialize-release' #initialize) ('testing' #isCurrent #isEmpty #isRelevantComponentChange: #notEmpty) ('converting' #asSortedCollection) ('change management' #addBinding:in: #addBinding:in:attributes: #addClass: #addClass:attributes: #addDoIt: #addNameSpace: #addNameSpace:attributes: #addPatch: #addSelector:class: #addSelector:class:attributes: #changeBinding:in: #changeBinding:in:attributes: #changeClass: #changeClass:attributes: #changedClassDefinitions #changedClasses #changedNameSpaces #changedObjects #changedStatics #changeNameSpace: #changeNameSpace:attributes: #changeSelector:class: #changeSelector:class:attributes: #changeSelector:class:documentation: #changeSelector:class:protocol: #commentClass: #commentNameSpace: #relocateBinding:from:to: #relocateClass:from:to: #relocateNameSpace:from:to: #removeBinding:in: #removeClass: #removeDoIt: #removeNameSpace: #removeSelector:class: #renameBinding:in:as: #renameClass:as: #renameNameSpace:as: #reorganizeClass: #reorganizeClassData: #reorganizeNameSpace: #update:with:from:) ('change support' #addName:type: #changeName:type: #commentName:type: #removeClassChanges: #removeName:type: #removeNameChanges:type: #renameName:as:type:change: #reorganizeDataInName:type: #reorganizeName:type:) ('method changes' #changedMessageList #removedMethodsDo: #removeSelectorChanges:class:) ('editing' #addChangeSet: #addChangesToChangeList: #removeChangeSet:) ('fileIn/Out' #fileOutChangesFor:on: #fileOutObjectDefinition:on: #fileOutOn: #fileOutSecondaryChangesFor:on: #putStatsOn:) ('printing' #printOn:) ('private' #addClasses:toChangeList:addCode: #atClass:add: #atClass:includes: #atClass:remove: #atName:includes: #atName:type:add: #atName:type:remove: #atNameWasRenamed: #atSelector:class: #atSelector:class:put: #broadcastChangeIfCurrent #classNamed: #hasRemovedClass: #isNewName: #nameOf:in: #newKey:changing:to: #nonMetaClassOf: #objectChanges #objectNamed: #objectRemoves #oldNameFor: #timeStampChange #typeCheck:type:createIfNeeded:) ('user interface' #inspectorClass) ('component changes' #addComponentChange: #bundleMark #codeComponentMarks #componentChangesDo: #componentFromString: #componentKeyFromString: #componentString: #packageMark #parcelMark #removeAllChangesForComponent: #removeComponentChange: #representsComponent:) ('component change management' #bundleStructure: #component:definition:change: #component:definition:selector:change: #component:definition:static:change: #component:definitionName:change: #component:definitionName:meta:selector:change: #component:definitionName:static:change: #component:property:value: #component:renamedTo: #createdComponent: #loadParcel: #loadPundle: #savePundle: #unloadComponent:) ('accessing' #changedClassCount #changedMethodCount) name = #ChangeSet classPool = a NameSpaceOfClass[3] environment = a NameSpace[251] dependents = a DependentsCollection[10] Arguments: anAspectSymbol = #removeClass: aParameter = an Array[1] Context PC = 18 ---------------------------------------------------------------------- ChangeSet class>>removeClass: Receiver: a ChangeSet class Instance Variables: superclass = Model methodDict = a MethodDictionary[121] format = 16390 subclasses = an Array[1] instanceVariables = an Array[5] organization = ('initialize-release' #initialize) ('testing' #isCurrent #isEmpty #isRelevantComponentChange: #notEmpty) ('converting' #asSortedCollection) ('change management' #addBinding:in: #addBinding:in:attributes: #addClass: #addClass:attributes: #addDoIt: #addNameSpace: #addNameSpace:attributes: #addPatch: #addSelector:class: #addSelector:class:attributes: #changeBinding:in: #changeBinding:in:attributes: #changeClass: #changeClass:attributes: #changedClassDefinitions #changedClasses #changedNameSpaces #changedObjects #changedStatics #changeNameSpace: #changeNameSpace:attributes: #changeSelector:class: #changeSelector:class:attributes: #changeSelector:class:documentation: #changeSelector:class:protocol: #commentClass: #commentNameSpace: #relocateBinding:from:to: #relocateClass:from:to: #relocateNameSpace:from:to: #removeBinding:in: #removeClass: #removeDoIt: #removeNameSpace: #removeSelector:class: #renameBinding:in:as: #renameClass:as: #renameNameSpace:as: #reorganizeClass: #reorganizeClassData: #reorganizeNameSpace: #update:with:from:) ('change support' #addName:type: #changeName:type: #commentName:type: #removeClassChanges: #removeName:type: #removeNameChanges:type: #renameName:as:type:change: #reorganizeDataInName:type: #reorganizeName:type:) ('method changes' #changedMessageList #removedMethodsDo: #removeSelectorChanges:class:) ('editing' #addChangeSet: #addChangesToChangeList: #removeChangeSet:) ('fileIn/Out' #fileOutChangesFor:on: #fileOutObjectDefinition:on: #fileOutOn: #fileOutSecondaryChangesFor:on: #putStatsOn:) ('printing' #printOn:) ('private' #addClasses:toChangeList:addCode: #atClass:add: #atClass:includes: #atClass:remove: #atName:includes: #atName:type:add: #atName:type:remove: #atNameWasRenamed: #atSelector:class: #atSelector:class:put: #broadcastChangeIfCurrent #classNamed: #hasRemovedClass: #isNewName: #nameOf:in: #newKey:changing:to: #nonMetaClassOf: #objectChanges #objectNamed: #objectRemoves #oldNameFor: #timeStampChange #typeCheck:type:createIfNeeded:) ('user interface' #inspectorClass) ('component changes' #addComponentChange: #bundleMark #codeComponentMarks #componentChangesDo: #componentFromString: #componentKeyFromString: #componentString: #packageMark #parcelMark #removeAllChangesForComponent: #removeComponentChange: #representsComponent:) ('component change management' #bundleStructure: #component:definition:change: #component:definition:selector:change: #component:definition:static:change: #component:definitionName:change: #component:definitionName:meta:selector:change: #component:definitionName:static:change: #component:property:value: #component:renamedTo: #createdComponent: #loadParcel: #loadPundle: #savePundle: #unloadComponent:) ('accessing' #changedClassCount #changedMethodCount) name = #ChangeSet classPool = a NameSpaceOfClass[3] environment = a NameSpace[251] dependents = a DependentsCollection[10] Arguments: class = 大宝藏.D所有个股权息资料库 Context PC = 9 -- Best Regards, Jim G deletClass.jpg (39K) Download Attachment |
It appears that you've probably discovered an area where the
parser gets called in a way that doesn't properly understand how to deal
with non-English characters.
It appears that this is likely happening in the context of renaming a class. To work around it, what I'd do is go into the XMainChangeSet in an inspector and remove the entry for that class. Then in the debugger, select the oldName frame, and from the execute menu Select "Return...". This will let you tell that function what to return when you proceed. So if you give it a good, or even reasonable value, it can keep going. Then, because I wouldn't trust the manual procedure, I'd reconcile the package against the database, publish it, then reconcile it again and/or browse it, just to make sure it looked like what I thought it ought to look like. At 11:33 AM 2/25/2007, Jim Guo wrote: Hi, --
Alan Knight [|], Cincom Smalltalk Development
"The Static Typing Philosophy: Make it fast. Make it right.
Make it run." - Niall Ross
|
Free forum by Nabble | Edit this page |