Well,
I am afraid I have some more import related problems. Now I am attempting to import conents of 1.1 based pier to 1.2 There were few problesm with missing packages, that I have resolved, and now import completes. Problem is that after import any atempt to access pier from web browser results with walkback as below: Davorin Rusevljan 22 April 2011 11:14:08 pm VM: Win32 - IX86 - 5.1 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.51] Image: Pharo1.2.1 [Latest update: #12345] SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir C:\temp\pier2\Pier.app\Contents\Resources Trusted Dir C:\temp\pier2\Pier.app\Contents\Resources\VsiTe Untrusted Dir C:\Documents and Settings\VsiTe\My Documents\My Squeak UndefinedObject(Object)>>doesNotUnderstand: #includes: Receiver: nil Arguments and temporary variables: aMessage: includes: nil exception: MessageNotUnderstood: receiver of "includes:" is nil resumeValue: nil Receiver's instance variables: nil PUGroup>>includes: Receiver: a PUGroup[1038352384] name: 'admin' Arguments and temporary variables: anUser: nil Receiver's instance variables: properties: nil name: 'admin' comment: a Set(a PUUser[209190912] name: 'kolumbina' a PUUser[30146560] name: '...etc... users: nil PUSecurity>>hasPermission:for: Receiver: a PUSecurity[382730240] Arguments and temporary variables: aPermission: View aUser: nil Receiver's instance variables: properties: nil decorated: a PRPage[7077888] name: 'pier' owner: a PUUser[30146560] name: 'admin' ownerPermissions: a Set(Add Component Add Blog View Add File Remove Change Owne...etc... group: a PUGroup[1038352384] name: 'admin' groupPermissions: a Set(Add Component Add Blog View Add File Remove Change Owne...etc... otherPermissions: a Set(View) [:permission | self hasPermission: permission for: aContext user] in PUSecurity>>isAllowedCommand:in: Receiver: a PUSecurity[382730240] Arguments and temporary variables: aContext: View permission: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' Receiver's instance variables: properties: nil decorated: a PRPage[7077888] name: 'pier' owner: a PUUser[30146560] name: 'admin' ownerPermissions: a Set(Add Component Add Blog View Add File Remove Change Owne...etc... group: a PUGroup[1038352384] name: 'admin' groupPermissions: a Set(Add Component Add Blog View Add File Remove Change Owne...etc... otherPermissions: a Set(View) [:each | (aBlock value: each) ifTrue: [^ true]. nil] in Array(Collection)>>anySatisfy: Receiver: an Array(View) Arguments and temporary variables: aBlock: View each: [:permission | self hasPermission: permission for: aContext user] Receiver's instance variables: an Array(View) Array(SequenceableCollection)>>do: Receiver: an Array(View) Arguments and temporary variables: aBlock: [:each | (aBlock value: each) ifTrue: [^ true]. nil] index: 1 indexLimiT: 1 Receiver's instance variables: an Array(View) Array(Collection)>>anySatisfy: Receiver: an Array(View) Arguments and temporary variables: aBlock: [:permission | self hasPermission: permission for: aContext user] Receiver's instance variables: an Array(View) PUSecurity>>isAllowedCommand:in: Receiver: a PUSecurity[382730240] Arguments and temporary variables: aCommandClass: PRViewCommand aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' Receiver's instance variables: properties: nil decorated: a PRPage[7077888] name: 'pier' owner: a PUUser[30146560] name: 'admin' ownerPermissions: a Set(Add Component Add Blog View Add File Remove Change Owne...etc... group: a PUGroup[1038352384] name: 'admin' groupPermissions: a Set(Add Component Add Blog View Add File Remove Change Owne...etc... otherPermissions: a Set(View) [:each | each isAllowedCommand: aCommandClass in: aContext] in PRPage(PRStructure)>>isAllowedCommand:in: Receiver: a PRPage[7077888] name: 'pier' Arguments and temporary variables: aCommandClass: a PUSecurity[382730240] aContext: PRViewCommand each: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' Receiver's instance variables: properties: a Dictionary(#documents->a Dictionary() #hideFromMenus->false #loca...etc... decorations: an Array(a PUSecurity[382730240] a PRChildren[757071872]) parent: nil name: 'pier' title: 'Cloud208.com' tags: #() document: a PRDocument[657195008] [:each | (aBlock value: each) ifFalse: [^ false]] in Array(Collection)>>allSatisfy: Receiver: an Array(a PUSecurity[382730240] a PRChildren[757071872]) Arguments and temporary variables: aBlock: a PUSecurity[382730240] each: [:each | each isAllowedCommand: aCommandClass in: aContext] Receiver's instance variables: an Array(a PUSecurity[382730240] a PRChildren[757071872]) Array(SequenceableCollection)>>do: Receiver: an Array(a PUSecurity[382730240] a PRChildren[757071872]) Arguments and temporary variables: aBlock: [:each | (aBlock value: each) ifFalse: [^ false]] index: 1 indexLimiT: 2 Receiver's instance variables: an Array(a PUSecurity[382730240] a PRChildren[757071872]) Array(Collection)>>allSatisfy: Receiver: an Array(a PUSecurity[382730240] a PRChildren[757071872]) Arguments and temporary variables: aBlock: [:each | each isAllowedCommand: aCommandClass in: aContext] Receiver's instance variables: an Array(a PUSecurity[382730240] a PRChildren[757071872]) PRPage(PRStructure)>>isAllowedCommand:in: Receiver: a PRPage[7077888] name: 'pier' Arguments and temporary variables: aCommandClass: PRViewCommand aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' Receiver's instance variables: properties: a Dictionary(#documents->a Dictionary() #hideFromMenus->false #loca...etc... decorations: an Array(a PUSecurity[382730240] a PRChildren[757071872]) parent: nil name: 'pier' title: 'Cloud208.com' tags: #() document: a PRDocument[657195008] PRPage(PRStructure)>>isValidCommand:in: Receiver: a PRPage[7077888] name: 'pier' Arguments and temporary variables: aCommandClass: PRViewCommand aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' Receiver's instance variables: properties: a Dictionary(#documents->a Dictionary() #hideFromMenus->false #loca...etc... decorations: an Array(a PUSecurity[382730240] a PRChildren[757071872]) parent: nil name: 'pier' title: 'Cloud208.com' tags: #() document: a PRDocument[657195008] PRViewCommand class(PRCommand class)>>isValidIn: Receiver: PRViewCommand Arguments and temporary variables: aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' Receiver's instance variables: superclass: PRCommand methodDict: a MethodDictionary(#asComponent->(PRViewCommand>>#asComponent "a Co...etc... format: 144 instanceVariables: nil organization: ('*pier-seaside-accessing' defaultViewComponentClass label render...etc... subclasses: nil name: #PRViewCommand classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Pier-Model-Command' traitComposition: {} localSelectors: nil PRContext>>isValidCommand: Receiver: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' Arguments and temporary variables: aCommandClass: PRViewCommand Receiver's instance variables: properties: a Dictionary(#user->nil ) kernel: a PRKernel[532414464] name: 'pier' structure: a PRPage[7077888] name: 'pier' command: a PRViewCommand[435159040] PRContext>>isValid Receiver: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' Arguments and temporary variables: Receiver's instance variables: properties: a Dictionary(#user->nil ) kernel: a PRKernel[532414464] name: 'pier' structure: a PRPage[7077888] name: 'pier' command: a PRViewCommand[435159040] PRPierFrame>>context: Receiver: a PRPierFrame Arguments and temporary variables: aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' Receiver's instance variables: decoration: a WAValueHolder contents: a WAToolDecoration context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' children: nil PRPierFrame>>initialRequest: Receiver: a PRPierFrame Arguments and temporary variables: aRequest: a WARequest method: GET uri: / version: HTTP/1.1 structure: a PRPage[7077888] name: 'pier' following: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' Receiver's instance variables: decoration: a WAValueHolder contents: a WAToolDecoration context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' children: nil WAInitialRequestVisitor>>visitPresenter: Receiver: a WAInitialRequestVisitor Arguments and temporary variables: aPresenter: a PRPierFrame Receiver's instance variables: request: a WARequest method: GET uri: / version: HTTP/1.1 WAInitialRequestVisitor(WAPainterVisitor)>>visitComponent: Receiver: a WAInitialRequestVisitor Arguments and temporary variables: aComponent: a PRPierFrame Receiver's instance variables: request: a WARequest method: GET uri: / version: HTTP/1.1 PRPierFrame(WAComponent)>>accept: Receiver: a PRPierFrame Arguments and temporary variables: aVisitor: a WAInitialRequestVisitor Receiver's instance variables: decoration: a WAValueHolder contents: a WAToolDecoration context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' children: nil WAInitialRequestVisitor(WAVisitor)>>visit: Receiver: a WAInitialRequestVisitor Arguments and temporary variables: anObject: a PRPierFrame Receiver's instance variables: request: a WARequest method: GET uri: / version: HTTP/1.1 WAAllPresenterGuide(WAPresenterGuide)>>visitPainter: Receiver: a WAAllPresenterGuide Arguments and temporary variables: aPainter: a PRPierFrame Receiver's instance variables: client: a WAInitialRequestVisitor WAAllPresenterGuide(WAPainterVisitor)>>visitPresenter: Receiver: a WAAllPresenterGuide Arguments and temporary variables: aPresenter: a PRPierFrame Receiver's instance variables: client: a WAInitialRequestVisitor WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitPresenter: Receiver: a WAAllPresenterGuide Arguments and temporary variables: aPresenter: a PRPierFrame Receiver's instance variables: client: a WAInitialRequestVisitor WAAllPresenterGuide(WAPainterVisitor)>>visitComponent: Receiver: a WAAllPresenterGuide Arguments and temporary variables: aComponent: a PRPierFrame Receiver's instance variables: client: a WAInitialRequestVisitor PRPierFrame(WAComponent)>>accept: Receiver: a PRPierFrame Arguments and temporary variables: aVisitor: a WAAllPresenterGuide Receiver's instance variables: decoration: a WAValueHolder contents: a WAToolDecoration context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' children: nil WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitDecoration: Receiver: a WAAllPresenterGuide Arguments and temporary variables: aDecoration: a WAToolDecoration Receiver's instance variables: client: a WAInitialRequestVisitor WAToolDecoration(WADecoration)>>accept: Receiver: a WAToolDecoration Arguments and temporary variables: aVisitor: a WAAllPresenterGuide Receiver's instance variables: next: a WAValueHolder contents: a PRPierFrame plugins: an OrderedCollection(a WANewSessionToolPlugin a WAConfigureToolPlugin ...etc... showHalos: a WAValueHolder contents: false halos: an IdentityDictionary() WAAllPresenterGuide(WAPainterVisitor)>>visitDecorationsOfComponent: Receiver: a WAAllPresenterGuide Arguments and temporary variables: aComponent: a PRPierFrame Receiver's instance variables: client: a WAInitialRequestVisitor PRPierFrame(WAComponent)>>acceptDecorated: Receiver: a PRPierFrame Arguments and temporary variables: aVisitor: a WAAllPresenterGuide Receiver's instance variables: decoration: a WAValueHolder contents: a WAToolDecoration context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' children: nil [super acceptDecorated: aPainterVisitor] in PRPierFrame>>acceptDecorated: Receiver: a PRPierFrame Arguments and temporary variables: aPainterVisitor: a WAAllPresenterGuide Receiver's instance variables: decoration: a WAValueHolder contents: a WAToolDecoration context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' children: nil BlockClosure>>on:do: Receiver: [super acceptDecorated: aPainterVisitor] Arguments and temporary variables: exception: PRCurrentContext handlerAction: [:notification | notification resume: anObject] handlerActive: true Receiver's instance variables: outerContext: PRPierFrame>>acceptDecorated: startpc: 27 numArgs: 0 PRCurrentContext class>>use:during: Receiver: PRCurrentContext Arguments and temporary variables: anObject: a PRPierFrame aBlock: [super acceptDecorated: aPainterVisitor] Receiver's instance variables: superclass: GRNotification methodDict: a MethodDictionary() format: 140 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #PRCurrentContext classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Pier-Model-Kernel' traitComposition: {} localSelectors: nil PRPierFrame>>withContextDo: Receiver: a PRPierFrame Arguments and temporary variables: aBlock: [super acceptDecorated: aPainterVisitor] Receiver's instance variables: decoration: a WAValueHolder contents: a WAToolDecoration context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' children: nil PRPierFrame>>acceptDecorated: Receiver: a PRPierFrame Arguments and temporary variables: aPainterVisitor: a WAAllPresenterGuide Receiver's instance variables: decoration: a WAValueHolder contents: a WAToolDecoration context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' children: nil WAAllPresenterGuide(WAPresenterGuide)>>visit: Receiver: a WAAllPresenterGuide Arguments and temporary variables: aPainter: a PRPierFrame Receiver's instance variables: client: a WAInitialRequestVisitor WAAllPresenterGuide(WAVisitor)>>start: Receiver: a WAAllPresenterGuide Arguments and temporary variables: anObject: a PRPierFrame Receiver's instance variables: client: a WAInitialRequestVisitor --- The full stack --- UndefinedObject(Object)>>doesNotUnderstand: #includes: PUGroup>>includes: PUSecurity>>hasPermission:for: [:permission | self hasPermission: permission for: aContext user] in PUSecurity>>isAllowedCommand:in: [:each | (aBlock value: each) ifTrue: [^ true]. nil] in Array(Collection)>>anySatisfy: Array(SequenceableCollection)>>do: Array(Collection)>>anySatisfy: PUSecurity>>isAllowedCommand:in: [:each | each isAllowedCommand: aCommandClass in: aContext] in PRPage(PRStructure)>>isAllowedCommand:in: [:each | (aBlock value: each) ifFalse: [^ false]] in Array(Collection)>>allSatisfy: Array(SequenceableCollection)>>do: Array(Collection)>>allSatisfy: PRPage(PRStructure)>>isAllowedCommand:in: PRPage(PRStructure)>>isValidCommand:in: PRViewCommand class(PRCommand class)>>isValidIn: PRContext>>isValidCommand: PRContext>>isValid PRPierFrame>>context: PRPierFrame>>initialRequest: WAInitialRequestVisitor>>visitPresenter: WAInitialRequestVisitor(WAPainterVisitor)>>visitComponent: PRPierFrame(WAComponent)>>accept: WAInitialRequestVisitor(WAVisitor)>>visit: WAAllPresenterGuide(WAPresenterGuide)>>visitPainter: WAAllPresenterGuide(WAPainterVisitor)>>visitPresenter: WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitPresenter: WAAllPresenterGuide(WAPainterVisitor)>>visitComponent: PRPierFrame(WAComponent)>>accept: WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitDecoration: WAToolDecoration(WADecoration)>>accept: WAAllPresenterGuide(WAPainterVisitor)>>visitDecorationsOfComponent: PRPierFrame(WAComponent)>>acceptDecorated: [super acceptDecorated: aPainterVisitor] in PRPierFrame>>acceptDecorated: BlockClosure>>on:do: PRCurrentContext class>>use:during: PRPierFrame>>withContextDo: PRPierFrame>>acceptDecorated: WAAllPresenterGuide(WAPresenterGuide)>>visit: WAAllPresenterGuide(WAVisitor)>>start: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WARenderLoopMain>>prepareRoot: WARenderLoopMain>>start WASession>>start [^ self start] in WASession>>handleFiltered: WAMergedRequestFields>>at:ifAbsent: WASession>>handleFiltered: WAMutualExclusionFilter(WARequestFilter)>>handleFiltered: [super handleFiltered: aRequestContext] in WAMutualExclusionFilter>>handleFiltered: BlockClosure>>ensure: [owner := process. aBlock ensure: [owner := nil]] in WAMutex>>critical: [caught := true. self wait. blockValue := mutuallyExcludedBlock value] in Semaphore>>critical: BlockClosure>>ensure: Semaphore>>critical: WAMutex>>critical: WAMutualExclusionFilter>>handleFiltered: [self filter handleFiltered: aRequestContext] in WASession(WARequestHandler)>>handle: BlockClosure>>on:do: WACurrentRequestContext class(WADynamicVariable class)>>use:during: [WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:while: BlockClosure>>ensure: WARequestContext>>push:while: WASession(WARequestHandler)>>handle: WAApplication(WARegistry)>>dispatch:to: WAApplication(WARegistry)>>handle:registering: WAApplication>>handleDefault: WAApplication(WARegistry)>>handleFiltered: WAApplication>>handleFiltered: WAExceptionFilter(WARequestFilter)>>handleFiltered: [super handleFiltered: aRequestContext] in WAExceptionFilter>>handleFiltered: BlockClosure>>on:do: WAWalkbackErrorHandler(WAExceptionHandler)>>handleExceptionsDuring: WAWalkbackErrorHandler class(WAExceptionHandler class)>>handleExceptionsDuring:context: WAExceptionFilter>>handleFiltered: [self filter handleFiltered: aRequestContext] in WAApplication(WARequestHandler)>>handle: BlockClosure>>on:do: WACurrentRequestContext class(WADynamicVariable class)>>use:during: [WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:while: BlockClosure>>ensure: WARequestContext>>push:while: WAApplication(WARequestHandler)>>handle: WADispatcher>>handleFiltered:named: WADispatcher>>handleDefault: WADispatcher>>handleFiltered: [self filter handleFiltered: aRequestContext] in WADispatcher(WARequestHandler)>>handle: BlockClosure>>on:do: WACurrentRequestContext class(WADynamicVariable class)>>use:during: [WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:while: BlockClosure>>ensure: WARequestContext>>push:while: WADispatcher(WARequestHandler)>>handle: [self requestHandler handle: aRequestContext] in WAComancheAdaptor(WAServerAdaptor)>>handleRequest: BlockClosure>>on:do: WAComancheAdaptor(WAServerAdaptor)>>handleRequest: WAComancheAdaptor(WAServerAdaptor)>>handle: [self handle: context; responseFrom: context] in WAComancheAdaptor(WAServerAdaptor)>>process: BlockClosure>>ensure: WAComancheAdaptor(WAServerAdaptor)>>process: WAComancheAdaptor>>processHttpRequest: HttpService>>processHttpRequest: [self target processHttpRequest: request] in HttpAdaptor>>dispatchRequest: BlockClosure>>on:do: HttpService>>handleDispatchErrorsIn: HttpAdaptor>>dispatchRequest: [[[request := self readRequest] on: Error do: [:ex | continue := false]. continue ifTrue: [response := self dispatchRequest: request. self addConnectionHeaders: response request: request count: count. (self writeResponse: response for: request) ifFalse: [^ self]. count := count + 1. continue := response isPersistent and: [count < limit]]. continue] whileTrue. nil] in HttpAdaptor>>beginConversation BlockClosure>>ensure: HttpAdaptor>>beginConversation HttpAdaptor class>>readAndWriteTo:service: HttpAdaptor class>>readAndWriteToSocket:service: HttpService>>serve: [self serve: aSocket] in HttpService(TcpService)>>value: [self value. Processor terminateActive] in BlockClosure>>newProcess _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
Strange that your groups end up with the 'users' list set to 'nil'.
Then again, it is kind of expected, because the objects between Pier 1.1 and 1.2 changed and the binary serialization mechanism isn't smart and only supposed to work between two identical images/versions. So you need to manually fix all PUGroup instances by setting the inst-var 'users' to 'Set new' if nil. Try something along: PUGroup allInstancesDo: [ :g | g users isNil ifTrue: [ g instVarNamed: 'users' put: Set new ] ] There might be other problems like this. And don't forget to check your permissions afterwards, likely they are messed up. Lukas On 22 April 2011 23:20, Davorin Rusevljan <[hidden email]> wrote: > Well, > > I am afraid I have some more import related problems. Now I am > attempting to import conents of 1.1 based pier to 1.2 > > There were few problesm with missing packages, that I have resolved, > and now import completes. Problem is that after import any atempt to > access pier from web browser results with walkback as below: > > Davorin Rusevljan > > > 22 April 2011 11:14:08 pm > > VM: Win32 - IX86 - 5.1 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.51] > Image: Pharo1.2.1 [Latest update: #12345] > > SecurityManager state: > Restricted: false > FileAccess: true > SocketAccess: true > Working Dir C:\temp\pier2\Pier.app\Contents\Resources > Trusted Dir C:\temp\pier2\Pier.app\Contents\Resources\VsiTe > Untrusted Dir C:\Documents and Settings\VsiTe\My Documents\My Squeak > > UndefinedObject(Object)>>doesNotUnderstand: #includes: > Receiver: nil > Arguments and temporary variables: > aMessage: includes: nil > exception: MessageNotUnderstood: receiver of "includes:" is nil > resumeValue: nil > Receiver's instance variables: > nil > > PUGroup>>includes: > Receiver: a PUGroup[1038352384] name: 'admin' > Arguments and temporary variables: > anUser: nil > Receiver's instance variables: > properties: nil > name: 'admin' > comment: a Set(a PUUser[209190912] name: 'kolumbina' a > PUUser[30146560] name: '...etc... > users: nil > > PUSecurity>>hasPermission:for: > Receiver: a PUSecurity[382730240] > Arguments and temporary variables: > aPermission: View > aUser: nil > Receiver's instance variables: > properties: nil > decorated: a PRPage[7077888] name: 'pier' > owner: a PUUser[30146560] name: 'admin' > ownerPermissions: a Set(Add Component Add Blog View Add File Remove > Change Owne...etc... > group: a PUGroup[1038352384] name: 'admin' > groupPermissions: a Set(Add Component Add Blog View Add File Remove > Change Owne...etc... > otherPermissions: a Set(View) > > [:permission | self hasPermission: permission for: aContext user] in > PUSecurity>>isAllowedCommand:in: > Receiver: a PUSecurity[382730240] > Arguments and temporary variables: > aContext: View > permission: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' > Receiver's instance variables: > properties: nil > decorated: a PRPage[7077888] name: 'pier' > owner: a PUUser[30146560] name: 'admin' > ownerPermissions: a Set(Add Component Add Blog View Add File Remove > Change Owne...etc... > group: a PUGroup[1038352384] name: 'admin' > groupPermissions: a Set(Add Component Add Blog View Add File Remove > Change Owne...etc... > otherPermissions: a Set(View) > > [:each | > (aBlock value: each) > ifTrue: [^ true]. > nil] in Array(Collection)>>anySatisfy: > Receiver: an Array(View) > Arguments and temporary variables: > aBlock: View > each: [:permission | self hasPermission: permission for: aContext user] > Receiver's instance variables: > an Array(View) > > Array(SequenceableCollection)>>do: > Receiver: an Array(View) > Arguments and temporary variables: > aBlock: [:each | > (aBlock value: each) > ifTrue: [^ true]. > nil] > index: 1 > indexLimiT: 1 > Receiver's instance variables: > an Array(View) > > Array(Collection)>>anySatisfy: > Receiver: an Array(View) > Arguments and temporary variables: > aBlock: [:permission | self hasPermission: permission for: aContext user] > Receiver's instance variables: > an Array(View) > > PUSecurity>>isAllowedCommand:in: > Receiver: a PUSecurity[382730240] > Arguments and temporary variables: > aCommandClass: PRViewCommand > aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' > Receiver's instance variables: > properties: nil > decorated: a PRPage[7077888] name: 'pier' > owner: a PUUser[30146560] name: 'admin' > ownerPermissions: a Set(Add Component Add Blog View Add File Remove > Change Owne...etc... > group: a PUGroup[1038352384] name: 'admin' > groupPermissions: a Set(Add Component Add Blog View Add File Remove > Change Owne...etc... > otherPermissions: a Set(View) > > [:each | each isAllowedCommand: aCommandClass in: aContext] in > PRPage(PRStructure)>>isAllowedCommand:in: > Receiver: a PRPage[7077888] name: 'pier' > Arguments and temporary variables: > aCommandClass: a PUSecurity[382730240] > aContext: PRViewCommand > each: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' > Receiver's instance variables: > properties: a Dictionary(#documents->a Dictionary() > #hideFromMenus->false #loca...etc... > decorations: an Array(a PUSecurity[382730240] a PRChildren[757071872]) > parent: nil > name: 'pier' > title: 'Cloud208.com' > tags: #() > document: a PRDocument[657195008] > > [:each | (aBlock value: each) > ifFalse: [^ false]] in Array(Collection)>>allSatisfy: > Receiver: an Array(a PUSecurity[382730240] a PRChildren[757071872]) > Arguments and temporary variables: > aBlock: a PUSecurity[382730240] > each: [:each | each isAllowedCommand: aCommandClass in: aContext] > Receiver's instance variables: > an Array(a PUSecurity[382730240] a PRChildren[757071872]) > > Array(SequenceableCollection)>>do: > Receiver: an Array(a PUSecurity[382730240] a PRChildren[757071872]) > Arguments and temporary variables: > aBlock: [:each | (aBlock value: each) > ifFalse: [^ false]] > index: 1 > indexLimiT: 2 > Receiver's instance variables: > an Array(a PUSecurity[382730240] a PRChildren[757071872]) > > Array(Collection)>>allSatisfy: > Receiver: an Array(a PUSecurity[382730240] a PRChildren[757071872]) > Arguments and temporary variables: > aBlock: [:each | each isAllowedCommand: aCommandClass in: aContext] > Receiver's instance variables: > an Array(a PUSecurity[382730240] a PRChildren[757071872]) > > PRPage(PRStructure)>>isAllowedCommand:in: > Receiver: a PRPage[7077888] name: 'pier' > Arguments and temporary variables: > aCommandClass: PRViewCommand > aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' > Receiver's instance variables: > properties: a Dictionary(#documents->a Dictionary() > #hideFromMenus->false #loca...etc... > decorations: an Array(a PUSecurity[382730240] a PRChildren[757071872]) > parent: nil > name: 'pier' > title: 'Cloud208.com' > tags: #() > document: a PRDocument[657195008] > > PRPage(PRStructure)>>isValidCommand:in: > Receiver: a PRPage[7077888] name: 'pier' > Arguments and temporary variables: > aCommandClass: PRViewCommand > aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' > Receiver's instance variables: > properties: a Dictionary(#documents->a Dictionary() > #hideFromMenus->false #loca...etc... > decorations: an Array(a PUSecurity[382730240] a PRChildren[757071872]) > parent: nil > name: 'pier' > title: 'Cloud208.com' > tags: #() > document: a PRDocument[657195008] > > PRViewCommand class(PRCommand class)>>isValidIn: > Receiver: PRViewCommand > Arguments and temporary variables: > aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' > Receiver's instance variables: > superclass: PRCommand > methodDict: a > MethodDictionary(#asComponent->(PRViewCommand>>#asComponent "a > Co...etc... > format: 144 > instanceVariables: nil > organization: ('*pier-seaside-accessing' defaultViewComponentClass > label render...etc... > subclasses: nil > name: #PRViewCommand > classPool: nil > sharedPools: nil > environment: a SystemDictionary(lots of globals) > category: #'Pier-Model-Command' > traitComposition: {} > localSelectors: nil > > PRContext>>isValidCommand: > Receiver: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' > Arguments and temporary variables: > aCommandClass: PRViewCommand > Receiver's instance variables: > properties: a Dictionary(#user->nil ) > kernel: a PRKernel[532414464] name: 'pier' > structure: a PRPage[7077888] name: 'pier' > command: a PRViewCommand[435159040] > > PRContext>>isValid > Receiver: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' > Arguments and temporary variables: > > Receiver's instance variables: > properties: a Dictionary(#user->nil ) > kernel: a PRKernel[532414464] name: 'pier' > structure: a PRPage[7077888] name: 'pier' > command: a PRViewCommand[435159040] > > PRPierFrame>>context: > Receiver: a PRPierFrame > Arguments and temporary variables: > aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' > Receiver's instance variables: > decoration: a WAValueHolder contents: a WAToolDecoration > context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' > children: nil > > PRPierFrame>>initialRequest: > Receiver: a PRPierFrame > Arguments and temporary variables: > aRequest: a WARequest method: GET uri: / version: HTTP/1.1 > structure: a PRPage[7077888] name: 'pier' > following: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' > Receiver's instance variables: > decoration: a WAValueHolder contents: a WAToolDecoration > context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' > children: nil > > WAInitialRequestVisitor>>visitPresenter: > Receiver: a WAInitialRequestVisitor > Arguments and temporary variables: > aPresenter: a PRPierFrame > Receiver's instance variables: > request: a WARequest method: GET uri: / version: HTTP/1.1 > > WAInitialRequestVisitor(WAPainterVisitor)>>visitComponent: > Receiver: a WAInitialRequestVisitor > Arguments and temporary variables: > aComponent: a PRPierFrame > Receiver's instance variables: > request: a WARequest method: GET uri: / version: HTTP/1.1 > > PRPierFrame(WAComponent)>>accept: > Receiver: a PRPierFrame > Arguments and temporary variables: > aVisitor: a WAInitialRequestVisitor > Receiver's instance variables: > decoration: a WAValueHolder contents: a WAToolDecoration > context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' > children: nil > > WAInitialRequestVisitor(WAVisitor)>>visit: > Receiver: a WAInitialRequestVisitor > Arguments and temporary variables: > anObject: a PRPierFrame > Receiver's instance variables: > request: a WARequest method: GET uri: / version: HTTP/1.1 > > WAAllPresenterGuide(WAPresenterGuide)>>visitPainter: > Receiver: a WAAllPresenterGuide > Arguments and temporary variables: > aPainter: a PRPierFrame > Receiver's instance variables: > client: a WAInitialRequestVisitor > > WAAllPresenterGuide(WAPainterVisitor)>>visitPresenter: > Receiver: a WAAllPresenterGuide > Arguments and temporary variables: > aPresenter: a PRPierFrame > Receiver's instance variables: > client: a WAInitialRequestVisitor > > WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitPresenter: > Receiver: a WAAllPresenterGuide > Arguments and temporary variables: > aPresenter: a PRPierFrame > Receiver's instance variables: > client: a WAInitialRequestVisitor > > WAAllPresenterGuide(WAPainterVisitor)>>visitComponent: > Receiver: a WAAllPresenterGuide > Arguments and temporary variables: > aComponent: a PRPierFrame > Receiver's instance variables: > client: a WAInitialRequestVisitor > > PRPierFrame(WAComponent)>>accept: > Receiver: a PRPierFrame > Arguments and temporary variables: > aVisitor: a WAAllPresenterGuide > Receiver's instance variables: > decoration: a WAValueHolder contents: a WAToolDecoration > context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' > children: nil > > WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitDecoration: > Receiver: a WAAllPresenterGuide > Arguments and temporary variables: > aDecoration: a WAToolDecoration > Receiver's instance variables: > client: a WAInitialRequestVisitor > > WAToolDecoration(WADecoration)>>accept: > Receiver: a WAToolDecoration > Arguments and temporary variables: > aVisitor: a WAAllPresenterGuide > Receiver's instance variables: > next: a WAValueHolder contents: a PRPierFrame > plugins: an OrderedCollection(a WANewSessionToolPlugin a > WAConfigureToolPlugin ...etc... > showHalos: a WAValueHolder contents: false > halos: an IdentityDictionary() > > WAAllPresenterGuide(WAPainterVisitor)>>visitDecorationsOfComponent: > Receiver: a WAAllPresenterGuide > Arguments and temporary variables: > aComponent: a PRPierFrame > Receiver's instance variables: > client: a WAInitialRequestVisitor > > PRPierFrame(WAComponent)>>acceptDecorated: > Receiver: a PRPierFrame > Arguments and temporary variables: > aVisitor: a WAAllPresenterGuide > Receiver's instance variables: > decoration: a WAValueHolder contents: a WAToolDecoration > context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' > children: nil > > [super acceptDecorated: aPainterVisitor] in PRPierFrame>>acceptDecorated: > Receiver: a PRPierFrame > Arguments and temporary variables: > aPainterVisitor: a WAAllPresenterGuide > Receiver's instance variables: > decoration: a WAValueHolder contents: a WAToolDecoration > context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' > children: nil > > BlockClosure>>on:do: > Receiver: [super acceptDecorated: aPainterVisitor] > Arguments and temporary variables: > exception: PRCurrentContext > handlerAction: [:notification | notification resume: anObject] > handlerActive: true > Receiver's instance variables: > outerContext: PRPierFrame>>acceptDecorated: > startpc: 27 > numArgs: 0 > > PRCurrentContext class>>use:during: > Receiver: PRCurrentContext > Arguments and temporary variables: > anObject: a PRPierFrame > aBlock: [super acceptDecorated: aPainterVisitor] > Receiver's instance variables: > superclass: GRNotification > methodDict: a MethodDictionary() > format: 140 > instanceVariables: nil > organization: ('as yet unclassified') > > subclasses: nil > name: #PRCurrentContext > classPool: nil > sharedPools: nil > environment: a SystemDictionary(lots of globals) > category: #'Pier-Model-Kernel' > traitComposition: {} > localSelectors: nil > > PRPierFrame>>withContextDo: > Receiver: a PRPierFrame > Arguments and temporary variables: > aBlock: [super acceptDecorated: aPainterVisitor] > Receiver's instance variables: > decoration: a WAValueHolder contents: a WAToolDecoration > context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' > children: nil > > PRPierFrame>>acceptDecorated: > Receiver: a PRPierFrame > Arguments and temporary variables: > aPainterVisitor: a WAAllPresenterGuide > Receiver's instance variables: > decoration: a WAValueHolder contents: a WAToolDecoration > context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' > children: nil > > WAAllPresenterGuide(WAPresenterGuide)>>visit: > Receiver: a WAAllPresenterGuide > Arguments and temporary variables: > aPainter: a PRPierFrame > Receiver's instance variables: > client: a WAInitialRequestVisitor > > WAAllPresenterGuide(WAVisitor)>>start: > Receiver: a WAAllPresenterGuide > Arguments and temporary variables: > anObject: a PRPierFrame > Receiver's instance variables: > client: a WAInitialRequestVisitor > > > --- The full stack --- > UndefinedObject(Object)>>doesNotUnderstand: #includes: > PUGroup>>includes: > PUSecurity>>hasPermission:for: > [:permission | self hasPermission: permission for: aContext user] in > PUSecurity>>isAllowedCommand:in: > [:each | > (aBlock value: each) > ifTrue: [^ true]. > nil] in Array(Collection)>>anySatisfy: > Array(SequenceableCollection)>>do: > Array(Collection)>>anySatisfy: > PUSecurity>>isAllowedCommand:in: > [:each | each isAllowedCommand: aCommandClass in: aContext] in > PRPage(PRStructure)>>isAllowedCommand:in: > [:each | (aBlock value: each) > ifFalse: [^ false]] in Array(Collection)>>allSatisfy: > Array(SequenceableCollection)>>do: > Array(Collection)>>allSatisfy: > PRPage(PRStructure)>>isAllowedCommand:in: > PRPage(PRStructure)>>isValidCommand:in: > PRViewCommand class(PRCommand class)>>isValidIn: > PRContext>>isValidCommand: > PRContext>>isValid > PRPierFrame>>context: > PRPierFrame>>initialRequest: > WAInitialRequestVisitor>>visitPresenter: > WAInitialRequestVisitor(WAPainterVisitor)>>visitComponent: > PRPierFrame(WAComponent)>>accept: > WAInitialRequestVisitor(WAVisitor)>>visit: > WAAllPresenterGuide(WAPresenterGuide)>>visitPainter: > WAAllPresenterGuide(WAPainterVisitor)>>visitPresenter: > WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitPresenter: > WAAllPresenterGuide(WAPainterVisitor)>>visitComponent: > PRPierFrame(WAComponent)>>accept: > WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitDecoration: > WAToolDecoration(WADecoration)>>accept: > WAAllPresenterGuide(WAPainterVisitor)>>visitDecorationsOfComponent: > PRPierFrame(WAComponent)>>acceptDecorated: > [super acceptDecorated: aPainterVisitor] in PRPierFrame>>acceptDecorated: > BlockClosure>>on:do: > PRCurrentContext class>>use:during: > PRPierFrame>>withContextDo: > PRPierFrame>>acceptDecorated: > WAAllPresenterGuide(WAPresenterGuide)>>visit: > WAAllPresenterGuide(WAVisitor)>>start: > - - - - - - - - - - - - - - - > - - - - - - - - - - - - - - - - - - > WARenderLoopMain>>prepareRoot: > WARenderLoopMain>>start > WASession>>start > [^ self start] in WASession>>handleFiltered: > WAMergedRequestFields>>at:ifAbsent: > WASession>>handleFiltered: > WAMutualExclusionFilter(WARequestFilter)>>handleFiltered: > [super handleFiltered: aRequestContext] in > WAMutualExclusionFilter>>handleFiltered: > BlockClosure>>ensure: > [owner := process. > aBlock > ensure: [owner := nil]] in WAMutex>>critical: > [caught := true. > self wait. > blockValue := mutuallyExcludedBlock value] in Semaphore>>critical: > BlockClosure>>ensure: > Semaphore>>critical: > WAMutex>>critical: > WAMutualExclusionFilter>>handleFiltered: > [self filter handleFiltered: aRequestContext] in > WASession(WARequestHandler)>>handle: > BlockClosure>>on:do: > WACurrentRequestContext class(WADynamicVariable class)>>use:during: > [WACurrentRequestContext use: self during: aBlock] in > WARequestContext>>push:while: > BlockClosure>>ensure: > WARequestContext>>push:while: > WASession(WARequestHandler)>>handle: > WAApplication(WARegistry)>>dispatch:to: > WAApplication(WARegistry)>>handle:registering: > WAApplication>>handleDefault: > WAApplication(WARegistry)>>handleFiltered: > WAApplication>>handleFiltered: > WAExceptionFilter(WARequestFilter)>>handleFiltered: > [super handleFiltered: aRequestContext] in WAExceptionFilter>>handleFiltered: > BlockClosure>>on:do: > WAWalkbackErrorHandler(WAExceptionHandler)>>handleExceptionsDuring: > WAWalkbackErrorHandler class(WAExceptionHandler > class)>>handleExceptionsDuring:context: > WAExceptionFilter>>handleFiltered: > [self filter handleFiltered: aRequestContext] in > WAApplication(WARequestHandler)>>handle: > BlockClosure>>on:do: > WACurrentRequestContext class(WADynamicVariable class)>>use:during: > [WACurrentRequestContext use: self during: aBlock] in > WARequestContext>>push:while: > BlockClosure>>ensure: > WARequestContext>>push:while: > WAApplication(WARequestHandler)>>handle: > WADispatcher>>handleFiltered:named: > WADispatcher>>handleDefault: > WADispatcher>>handleFiltered: > [self filter handleFiltered: aRequestContext] in > WADispatcher(WARequestHandler)>>handle: > BlockClosure>>on:do: > WACurrentRequestContext class(WADynamicVariable class)>>use:during: > [WACurrentRequestContext use: self during: aBlock] in > WARequestContext>>push:while: > BlockClosure>>ensure: > WARequestContext>>push:while: > WADispatcher(WARequestHandler)>>handle: > [self requestHandler handle: aRequestContext] in > WAComancheAdaptor(WAServerAdaptor)>>handleRequest: > BlockClosure>>on:do: > WAComancheAdaptor(WAServerAdaptor)>>handleRequest: > WAComancheAdaptor(WAServerAdaptor)>>handle: > [self handle: context; > responseFrom: context] in WAComancheAdaptor(WAServerAdaptor)>>process: > BlockClosure>>ensure: > WAComancheAdaptor(WAServerAdaptor)>>process: > WAComancheAdaptor>>processHttpRequest: > HttpService>>processHttpRequest: > [self target processHttpRequest: request] in HttpAdaptor>>dispatchRequest: > BlockClosure>>on:do: > HttpService>>handleDispatchErrorsIn: > HttpAdaptor>>dispatchRequest: > [[[request := self readRequest] > on: Error > do: [:ex | continue := false]. > continue > ifTrue: [response := self dispatchRequest: request. > self > addConnectionHeaders: response > request: request > count: count. > (self writeResponse: response for: request) > ifFalse: [^ self]. > count := count + 1. > continue := response isPersistent > and: [count < limit]]. > continue] whileTrue. > nil] in HttpAdaptor>>beginConversation > BlockClosure>>ensure: > HttpAdaptor>>beginConversation > HttpAdaptor class>>readAndWriteTo:service: > HttpAdaptor class>>readAndWriteToSocket:service: > HttpService>>serve: > [self serve: aSocket] in HttpService(TcpService)>>value: > [self value. > Processor terminateActive] in BlockClosure>>newProcess > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -- Lukas Renggli www.lukas-renggli.ch _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
On Sat, Apr 23, 2011 at 8:48 AM, Lukas Renggli <[hidden email]> wrote:
> Strange that your groups end up with the 'users' list set to 'nil'. > Then again, it is kind of expected, because the objects between Pier > 1.1 and 1.2 changed and the binary serialization mechanism isn't smart > and only supposed to work between two identical images/versions. > > So you need to manually fix all PUGroup instances by setting the > inst-var 'users' to 'Set new' if nil. Try something along: > > PUGroup allInstancesDo: [ :g | > g users isNil > ifTrue: [ g instVarNamed: 'users' put: Set new ] ] That moved me one step further. Next obstacle is PRInternalLink which in embeded inst var has empty Array, while and this array gets returned by isEmbeded, and then gets used as boolean in some block. Did semantics of embeded inst var changed from 1.1 to 1.2? (and what are they now :) Maybe I could alter all instances of PRLink that have empty arrays as embeded to be set to false, and other ones to true, but I do not know if this is going to break something else since original embeded informaton would be lost. Thanks, Davorin Thanks > > There might be other problems like this. And don't forget to check > your permissions afterwards, likely they are messed up. > > Lukas > > On 22 April 2011 23:20, Davorin Rusevljan <[hidden email]> wrote: >> Well, >> >> I am afraid I have some more import related problems. Now I am >> attempting to import conents of 1.1 based pier to 1.2 >> >> There were few problesm with missing packages, that I have resolved, >> and now import completes. Problem is that after import any atempt to >> access pier from web browser results with walkback as below: >> >> Davorin Rusevljan >> >> >> 22 April 2011 11:14:08 pm >> >> VM: Win32 - IX86 - 5.1 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.51] >> Image: Pharo1.2.1 [Latest update: #12345] >> >> SecurityManager state: >> Restricted: false >> FileAccess: true >> SocketAccess: true >> Working Dir C:\temp\pier2\Pier.app\Contents\Resources >> Trusted Dir C:\temp\pier2\Pier.app\Contents\Resources\VsiTe >> Untrusted Dir C:\Documents and Settings\VsiTe\My Documents\My Squeak >> >> UndefinedObject(Object)>>doesNotUnderstand: #includes: >> Receiver: nil >> Arguments and temporary variables: >> aMessage: includes: nil >> exception: MessageNotUnderstood: receiver of "includes:" is nil >> resumeValue: nil >> Receiver's instance variables: >> nil >> >> PUGroup>>includes: >> Receiver: a PUGroup[1038352384] name: 'admin' >> Arguments and temporary variables: >> anUser: nil >> Receiver's instance variables: >> properties: nil >> name: 'admin' >> comment: a Set(a PUUser[209190912] name: 'kolumbina' a >> PUUser[30146560] name: '...etc... >> users: nil >> >> PUSecurity>>hasPermission:for: >> Receiver: a PUSecurity[382730240] >> Arguments and temporary variables: >> aPermission: View >> aUser: nil >> Receiver's instance variables: >> properties: nil >> decorated: a PRPage[7077888] name: 'pier' >> owner: a PUUser[30146560] name: 'admin' >> ownerPermissions: a Set(Add Component Add Blog View Add File Remove >> Change Owne...etc... >> group: a PUGroup[1038352384] name: 'admin' >> groupPermissions: a Set(Add Component Add Blog View Add File Remove >> Change Owne...etc... >> otherPermissions: a Set(View) >> >> [:permission | self hasPermission: permission for: aContext user] in >> PUSecurity>>isAllowedCommand:in: >> Receiver: a PUSecurity[382730240] >> Arguments and temporary variables: >> aContext: View >> permission: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' >> Receiver's instance variables: >> properties: nil >> decorated: a PRPage[7077888] name: 'pier' >> owner: a PUUser[30146560] name: 'admin' >> ownerPermissions: a Set(Add Component Add Blog View Add File Remove >> Change Owne...etc... >> group: a PUGroup[1038352384] name: 'admin' >> groupPermissions: a Set(Add Component Add Blog View Add File Remove >> Change Owne...etc... >> otherPermissions: a Set(View) >> >> [:each | >> (aBlock value: each) >> ifTrue: [^ true]. >> nil] in Array(Collection)>>anySatisfy: >> Receiver: an Array(View) >> Arguments and temporary variables: >> aBlock: View >> each: [:permission | self hasPermission: permission for: aContext user] >> Receiver's instance variables: >> an Array(View) >> >> Array(SequenceableCollection)>>do: >> Receiver: an Array(View) >> Arguments and temporary variables: >> aBlock: [:each | >> (aBlock value: each) >> ifTrue: [^ true]. >> nil] >> index: 1 >> indexLimiT: 1 >> Receiver's instance variables: >> an Array(View) >> >> Array(Collection)>>anySatisfy: >> Receiver: an Array(View) >> Arguments and temporary variables: >> aBlock: [:permission | self hasPermission: permission for: aContext user] >> Receiver's instance variables: >> an Array(View) >> >> PUSecurity>>isAllowedCommand:in: >> Receiver: a PUSecurity[382730240] >> Arguments and temporary variables: >> aCommandClass: PRViewCommand >> aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' >> Receiver's instance variables: >> properties: nil >> decorated: a PRPage[7077888] name: 'pier' >> owner: a PUUser[30146560] name: 'admin' >> ownerPermissions: a Set(Add Component Add Blog View Add File Remove >> Change Owne...etc... >> group: a PUGroup[1038352384] name: 'admin' >> groupPermissions: a Set(Add Component Add Blog View Add File Remove >> Change Owne...etc... >> otherPermissions: a Set(View) >> >> [:each | each isAllowedCommand: aCommandClass in: aContext] in >> PRPage(PRStructure)>>isAllowedCommand:in: >> Receiver: a PRPage[7077888] name: 'pier' >> Arguments and temporary variables: >> aCommandClass: a PUSecurity[382730240] >> aContext: PRViewCommand >> each: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' >> Receiver's instance variables: >> properties: a Dictionary(#documents->a Dictionary() >> #hideFromMenus->false #loca...etc... >> decorations: an Array(a PUSecurity[382730240] a PRChildren[757071872]) >> parent: nil >> name: 'pier' >> title: 'Cloud208.com' >> tags: #() >> document: a PRDocument[657195008] >> >> [:each | (aBlock value: each) >> ifFalse: [^ false]] in Array(Collection)>>allSatisfy: >> Receiver: an Array(a PUSecurity[382730240] a PRChildren[757071872]) >> Arguments and temporary variables: >> aBlock: a PUSecurity[382730240] >> each: [:each | each isAllowedCommand: aCommandClass in: aContext] >> Receiver's instance variables: >> an Array(a PUSecurity[382730240] a PRChildren[757071872]) >> >> Array(SequenceableCollection)>>do: >> Receiver: an Array(a PUSecurity[382730240] a PRChildren[757071872]) >> Arguments and temporary variables: >> aBlock: [:each | (aBlock value: each) >> ifFalse: [^ false]] >> index: 1 >> indexLimiT: 2 >> Receiver's instance variables: >> an Array(a PUSecurity[382730240] a PRChildren[757071872]) >> >> Array(Collection)>>allSatisfy: >> Receiver: an Array(a PUSecurity[382730240] a PRChildren[757071872]) >> Arguments and temporary variables: >> aBlock: [:each | each isAllowedCommand: aCommandClass in: aContext] >> Receiver's instance variables: >> an Array(a PUSecurity[382730240] a PRChildren[757071872]) >> >> PRPage(PRStructure)>>isAllowedCommand:in: >> Receiver: a PRPage[7077888] name: 'pier' >> Arguments and temporary variables: >> aCommandClass: PRViewCommand >> aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' >> Receiver's instance variables: >> properties: a Dictionary(#documents->a Dictionary() >> #hideFromMenus->false #loca...etc... >> decorations: an Array(a PUSecurity[382730240] a PRChildren[757071872]) >> parent: nil >> name: 'pier' >> title: 'Cloud208.com' >> tags: #() >> document: a PRDocument[657195008] >> >> PRPage(PRStructure)>>isValidCommand:in: >> Receiver: a PRPage[7077888] name: 'pier' >> Arguments and temporary variables: >> aCommandClass: PRViewCommand >> aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' >> Receiver's instance variables: >> properties: a Dictionary(#documents->a Dictionary() >> #hideFromMenus->false #loca...etc... >> decorations: an Array(a PUSecurity[382730240] a PRChildren[757071872]) >> parent: nil >> name: 'pier' >> title: 'Cloud208.com' >> tags: #() >> document: a PRDocument[657195008] >> >> PRViewCommand class(PRCommand class)>>isValidIn: >> Receiver: PRViewCommand >> Arguments and temporary variables: >> aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' >> Receiver's instance variables: >> superclass: PRCommand >> methodDict: a >> MethodDictionary(#asComponent->(PRViewCommand>>#asComponent "a >> Co...etc... >> format: 144 >> instanceVariables: nil >> organization: ('*pier-seaside-accessing' defaultViewComponentClass >> label render...etc... >> subclasses: nil >> name: #PRViewCommand >> classPool: nil >> sharedPools: nil >> environment: a SystemDictionary(lots of globals) >> category: #'Pier-Model-Command' >> traitComposition: {} >> localSelectors: nil >> >> PRContext>>isValidCommand: >> Receiver: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' >> Arguments and temporary variables: >> aCommandClass: PRViewCommand >> Receiver's instance variables: >> properties: a Dictionary(#user->nil ) >> kernel: a PRKernel[532414464] name: 'pier' >> structure: a PRPage[7077888] name: 'pier' >> command: a PRViewCommand[435159040] >> >> PRContext>>isValid >> Receiver: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' >> Arguments and temporary variables: >> >> Receiver's instance variables: >> properties: a Dictionary(#user->nil ) >> kernel: a PRKernel[532414464] name: 'pier' >> structure: a PRPage[7077888] name: 'pier' >> command: a PRViewCommand[435159040] >> >> PRPierFrame>>context: >> Receiver: a PRPierFrame >> Arguments and temporary variables: >> aContext: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' >> Receiver's instance variables: >> decoration: a WAValueHolder contents: a WAToolDecoration >> context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' >> children: nil >> >> PRPierFrame>>initialRequest: >> Receiver: a PRPierFrame >> Arguments and temporary variables: >> aRequest: a WARequest method: GET uri: / version: HTTP/1.1 >> structure: a PRPage[7077888] name: 'pier' >> following: a PRContext[435945472] structure: 'Cloud208.com' command: 'View' >> Receiver's instance variables: >> decoration: a WAValueHolder contents: a WAToolDecoration >> context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' >> children: nil >> >> WAInitialRequestVisitor>>visitPresenter: >> Receiver: a WAInitialRequestVisitor >> Arguments and temporary variables: >> aPresenter: a PRPierFrame >> Receiver's instance variables: >> request: a WARequest method: GET uri: / version: HTTP/1.1 >> >> WAInitialRequestVisitor(WAPainterVisitor)>>visitComponent: >> Receiver: a WAInitialRequestVisitor >> Arguments and temporary variables: >> aComponent: a PRPierFrame >> Receiver's instance variables: >> request: a WARequest method: GET uri: / version: HTTP/1.1 >> >> PRPierFrame(WAComponent)>>accept: >> Receiver: a PRPierFrame >> Arguments and temporary variables: >> aVisitor: a WAInitialRequestVisitor >> Receiver's instance variables: >> decoration: a WAValueHolder contents: a WAToolDecoration >> context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' >> children: nil >> >> WAInitialRequestVisitor(WAVisitor)>>visit: >> Receiver: a WAInitialRequestVisitor >> Arguments and temporary variables: >> anObject: a PRPierFrame >> Receiver's instance variables: >> request: a WARequest method: GET uri: / version: HTTP/1.1 >> >> WAAllPresenterGuide(WAPresenterGuide)>>visitPainter: >> Receiver: a WAAllPresenterGuide >> Arguments and temporary variables: >> aPainter: a PRPierFrame >> Receiver's instance variables: >> client: a WAInitialRequestVisitor >> >> WAAllPresenterGuide(WAPainterVisitor)>>visitPresenter: >> Receiver: a WAAllPresenterGuide >> Arguments and temporary variables: >> aPresenter: a PRPierFrame >> Receiver's instance variables: >> client: a WAInitialRequestVisitor >> >> WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitPresenter: >> Receiver: a WAAllPresenterGuide >> Arguments and temporary variables: >> aPresenter: a PRPierFrame >> Receiver's instance variables: >> client: a WAInitialRequestVisitor >> >> WAAllPresenterGuide(WAPainterVisitor)>>visitComponent: >> Receiver: a WAAllPresenterGuide >> Arguments and temporary variables: >> aComponent: a PRPierFrame >> Receiver's instance variables: >> client: a WAInitialRequestVisitor >> >> PRPierFrame(WAComponent)>>accept: >> Receiver: a PRPierFrame >> Arguments and temporary variables: >> aVisitor: a WAAllPresenterGuide >> Receiver's instance variables: >> decoration: a WAValueHolder contents: a WAToolDecoration >> context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' >> children: nil >> >> WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitDecoration: >> Receiver: a WAAllPresenterGuide >> Arguments and temporary variables: >> aDecoration: a WAToolDecoration >> Receiver's instance variables: >> client: a WAInitialRequestVisitor >> >> WAToolDecoration(WADecoration)>>accept: >> Receiver: a WAToolDecoration >> Arguments and temporary variables: >> aVisitor: a WAAllPresenterGuide >> Receiver's instance variables: >> next: a WAValueHolder contents: a PRPierFrame >> plugins: an OrderedCollection(a WANewSessionToolPlugin a >> WAConfigureToolPlugin ...etc... >> showHalos: a WAValueHolder contents: false >> halos: an IdentityDictionary() >> >> WAAllPresenterGuide(WAPainterVisitor)>>visitDecorationsOfComponent: >> Receiver: a WAAllPresenterGuide >> Arguments and temporary variables: >> aComponent: a PRPierFrame >> Receiver's instance variables: >> client: a WAInitialRequestVisitor >> >> PRPierFrame(WAComponent)>>acceptDecorated: >> Receiver: a PRPierFrame >> Arguments and temporary variables: >> aVisitor: a WAAllPresenterGuide >> Receiver's instance variables: >> decoration: a WAValueHolder contents: a WAToolDecoration >> context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' >> children: nil >> >> [super acceptDecorated: aPainterVisitor] in PRPierFrame>>acceptDecorated: >> Receiver: a PRPierFrame >> Arguments and temporary variables: >> aPainterVisitor: a WAAllPresenterGuide >> Receiver's instance variables: >> decoration: a WAValueHolder contents: a WAToolDecoration >> context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' >> children: nil >> >> BlockClosure>>on:do: >> Receiver: [super acceptDecorated: aPainterVisitor] >> Arguments and temporary variables: >> exception: PRCurrentContext >> handlerAction: [:notification | notification resume: anObject] >> handlerActive: true >> Receiver's instance variables: >> outerContext: PRPierFrame>>acceptDecorated: >> startpc: 27 >> numArgs: 0 >> >> PRCurrentContext class>>use:during: >> Receiver: PRCurrentContext >> Arguments and temporary variables: >> anObject: a PRPierFrame >> aBlock: [super acceptDecorated: aPainterVisitor] >> Receiver's instance variables: >> superclass: GRNotification >> methodDict: a MethodDictionary() >> format: 140 >> instanceVariables: nil >> organization: ('as yet unclassified') >> >> subclasses: nil >> name: #PRCurrentContext >> classPool: nil >> sharedPools: nil >> environment: a SystemDictionary(lots of globals) >> category: #'Pier-Model-Kernel' >> traitComposition: {} >> localSelectors: nil >> >> PRPierFrame>>withContextDo: >> Receiver: a PRPierFrame >> Arguments and temporary variables: >> aBlock: [super acceptDecorated: aPainterVisitor] >> Receiver's instance variables: >> decoration: a WAValueHolder contents: a WAToolDecoration >> context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' >> children: nil >> >> PRPierFrame>>acceptDecorated: >> Receiver: a PRPierFrame >> Arguments and temporary variables: >> aPainterVisitor: a WAAllPresenterGuide >> Receiver's instance variables: >> decoration: a WAValueHolder contents: a WAToolDecoration >> context: a PRContext[398721024] structure: 'Cloud208.com' command: 'View' >> children: nil >> >> WAAllPresenterGuide(WAPresenterGuide)>>visit: >> Receiver: a WAAllPresenterGuide >> Arguments and temporary variables: >> aPainter: a PRPierFrame >> Receiver's instance variables: >> client: a WAInitialRequestVisitor >> >> WAAllPresenterGuide(WAVisitor)>>start: >> Receiver: a WAAllPresenterGuide >> Arguments and temporary variables: >> anObject: a PRPierFrame >> Receiver's instance variables: >> client: a WAInitialRequestVisitor >> >> >> --- The full stack --- >> UndefinedObject(Object)>>doesNotUnderstand: #includes: >> PUGroup>>includes: >> PUSecurity>>hasPermission:for: >> [:permission | self hasPermission: permission for: aContext user] in >> PUSecurity>>isAllowedCommand:in: >> [:each | >> (aBlock value: each) >> ifTrue: [^ true]. >> nil] in Array(Collection)>>anySatisfy: >> Array(SequenceableCollection)>>do: >> Array(Collection)>>anySatisfy: >> PUSecurity>>isAllowedCommand:in: >> [:each | each isAllowedCommand: aCommandClass in: aContext] in >> PRPage(PRStructure)>>isAllowedCommand:in: >> [:each | (aBlock value: each) >> ifFalse: [^ false]] in Array(Collection)>>allSatisfy: >> Array(SequenceableCollection)>>do: >> Array(Collection)>>allSatisfy: >> PRPage(PRStructure)>>isAllowedCommand:in: >> PRPage(PRStructure)>>isValidCommand:in: >> PRViewCommand class(PRCommand class)>>isValidIn: >> PRContext>>isValidCommand: >> PRContext>>isValid >> PRPierFrame>>context: >> PRPierFrame>>initialRequest: >> WAInitialRequestVisitor>>visitPresenter: >> WAInitialRequestVisitor(WAPainterVisitor)>>visitComponent: >> PRPierFrame(WAComponent)>>accept: >> WAInitialRequestVisitor(WAVisitor)>>visit: >> WAAllPresenterGuide(WAPresenterGuide)>>visitPainter: >> WAAllPresenterGuide(WAPainterVisitor)>>visitPresenter: >> WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitPresenter: >> WAAllPresenterGuide(WAPainterVisitor)>>visitComponent: >> PRPierFrame(WAComponent)>>accept: >> WAAllPresenterGuide(WAVisiblePresenterGuide)>>visitDecoration: >> WAToolDecoration(WADecoration)>>accept: >> WAAllPresenterGuide(WAPainterVisitor)>>visitDecorationsOfComponent: >> PRPierFrame(WAComponent)>>acceptDecorated: >> [super acceptDecorated: aPainterVisitor] in PRPierFrame>>acceptDecorated: >> BlockClosure>>on:do: >> PRCurrentContext class>>use:during: >> PRPierFrame>>withContextDo: >> PRPierFrame>>acceptDecorated: >> WAAllPresenterGuide(WAPresenterGuide)>>visit: >> WAAllPresenterGuide(WAVisitor)>>start: >> - - - - - - - - - - - - - - - >> - - - - - - - - - - - - - - - - - - >> WARenderLoopMain>>prepareRoot: >> WARenderLoopMain>>start >> WASession>>start >> [^ self start] in WASession>>handleFiltered: >> WAMergedRequestFields>>at:ifAbsent: >> WASession>>handleFiltered: >> WAMutualExclusionFilter(WARequestFilter)>>handleFiltered: >> [super handleFiltered: aRequestContext] in >> WAMutualExclusionFilter>>handleFiltered: >> BlockClosure>>ensure: >> [owner := process. >> aBlock >> ensure: [owner := nil]] in WAMutex>>critical: >> [caught := true. >> self wait. >> blockValue := mutuallyExcludedBlock value] in Semaphore>>critical: >> BlockClosure>>ensure: >> Semaphore>>critical: >> WAMutex>>critical: >> WAMutualExclusionFilter>>handleFiltered: >> [self filter handleFiltered: aRequestContext] in >> WASession(WARequestHandler)>>handle: >> BlockClosure>>on:do: >> WACurrentRequestContext class(WADynamicVariable class)>>use:during: >> [WACurrentRequestContext use: self during: aBlock] in >> WARequestContext>>push:while: >> BlockClosure>>ensure: >> WARequestContext>>push:while: >> WASession(WARequestHandler)>>handle: >> WAApplication(WARegistry)>>dispatch:to: >> WAApplication(WARegistry)>>handle:registering: >> WAApplication>>handleDefault: >> WAApplication(WARegistry)>>handleFiltered: >> WAApplication>>handleFiltered: >> WAExceptionFilter(WARequestFilter)>>handleFiltered: >> [super handleFiltered: aRequestContext] in WAExceptionFilter>>handleFiltered: >> BlockClosure>>on:do: >> WAWalkbackErrorHandler(WAExceptionHandler)>>handleExceptionsDuring: >> WAWalkbackErrorHandler class(WAExceptionHandler >> class)>>handleExceptionsDuring:context: >> WAExceptionFilter>>handleFiltered: >> [self filter handleFiltered: aRequestContext] in >> WAApplication(WARequestHandler)>>handle: >> BlockClosure>>on:do: >> WACurrentRequestContext class(WADynamicVariable class)>>use:during: >> [WACurrentRequestContext use: self during: aBlock] in >> WARequestContext>>push:while: >> BlockClosure>>ensure: >> WARequestContext>>push:while: >> WAApplication(WARequestHandler)>>handle: >> WADispatcher>>handleFiltered:named: >> WADispatcher>>handleDefault: >> WADispatcher>>handleFiltered: >> [self filter handleFiltered: aRequestContext] in >> WADispatcher(WARequestHandler)>>handle: >> BlockClosure>>on:do: >> WACurrentRequestContext class(WADynamicVariable class)>>use:during: >> [WACurrentRequestContext use: self during: aBlock] in >> WARequestContext>>push:while: >> BlockClosure>>ensure: >> WARequestContext>>push:while: >> WADispatcher(WARequestHandler)>>handle: >> [self requestHandler handle: aRequestContext] in >> WAComancheAdaptor(WAServerAdaptor)>>handleRequest: >> BlockClosure>>on:do: >> WAComancheAdaptor(WAServerAdaptor)>>handleRequest: >> WAComancheAdaptor(WAServerAdaptor)>>handle: >> [self handle: context; >> responseFrom: context] in WAComancheAdaptor(WAServerAdaptor)>>process: >> BlockClosure>>ensure: >> WAComancheAdaptor(WAServerAdaptor)>>process: >> WAComancheAdaptor>>processHttpRequest: >> HttpService>>processHttpRequest: >> [self target processHttpRequest: request] in HttpAdaptor>>dispatchRequest: >> BlockClosure>>on:do: >> HttpService>>handleDispatchErrorsIn: >> HttpAdaptor>>dispatchRequest: >> [[[request := self readRequest] >> on: Error >> do: [:ex | continue := false]. >> continue >> ifTrue: [response := self dispatchRequest: request. >> self >> addConnectionHeaders: response >> request: request >> count: count. >> (self writeResponse: response for: request) >> ifFalse: [^ self]. >> count := count + 1. >> continue := response isPersistent >> and: [count < limit]]. >> continue] whileTrue. >> nil] in HttpAdaptor>>beginConversation >> BlockClosure>>ensure: >> HttpAdaptor>>beginConversation >> HttpAdaptor class>>readAndWriteTo:service: >> HttpAdaptor class>>readAndWriteToSocket:service: >> HttpService>>serve: >> [self serve: aSocket] in HttpService(TcpService)>>value: >> [self value. >> Processor terminateActive] in BlockClosure>>newProcess >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> > > > > -- > Lukas Renggli > www.lukas-renggli.ch > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
Hello Lukas, Do you have some advice what to do with embeded inst vars of PRLink(s), 1.2 expects them to be bools while my 1.1 contains arrays, sometimes non empty. Davorin Rusevljan On Apr 23, 2011 10:35 AM, "Davorin Rusevljan" <[hidden email]> wrote: _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
> Do you have some advice what to do with embeded inst vars of PRLink(s), 1.2
> expects them to be bools while my 1.1 contains arrays, sometimes non empty. You have to figure out how to move the contents into the right variables using #instVarAt: and #instVarAt:put:. However, in your case it is probably easier if you use SIXX -- or try to adapt the import/export code to use SmartRefStream -- that both can handle instance variable changes. Then you only need to fix the "new" variables. Lukas -- Lukas Renggli www.lukas-renggli.ch _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
Thanks for tip regarding sixx. Anyway, what bothers me is embeded inst var of PRLink that existed in both 1.1 and 1.2. But 1.2 expects it to be true or false, while my 1.1 PRLinks have arrays in them that contain some data. Now I could overwrite those arrays with true or false, but what about information that those arrays contained should I store it somewhere else? So the question is more what was meaning of embeded inst var before, what is now and how should they be logically migrated? Thanks, Davorin Rusevljan On Apr 26, 2011 10:54 PM, "Lukas Renggli" <[hidden email]> wrote: _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
To find out about the instance variables you have to compare the code,
i don't remember these changes of the top of my head. There is something else you might to try: There should be a class PRMigrations (or similar, I don't have an image to verify) with a bunch of class side methods that I used to bring the objects along from the first version of Pier to today. Run #initialize after import to give it a try. Not sure it handels well a non-incremental change like in your case, but it is relatively safe to run as it does all kind of verifications to validate and fix the model. Lukas On Wednesday, 27 April 2011, Davorin Rusevljan <[hidden email]> wrote: > Thanks for tip regarding sixx. Anyway, what bothers me is embeded inst var of PRLink that existed in both 1.1 and 1.2. But 1.2 expects it to be true or false, while my 1.1 PRLinks have arrays in them that contain some data. Now I could overwrite those arrays with true or false, but what about information that those arrays contained should I store it somewhere else? > > So the question is more what was meaning of embeded inst var before, what is now and how should they be logically migrated? > Thanks, > Davorin Rusevljan > > On Apr 26, 2011 10:54 PM, "Lukas Renggli" <[hidden email]> wrote: > >> Do you have some advice what to do with embeded inst vars of PRLink(s), 1.2 >> expects them to be ...You have to figure out how to move the contents into the right > variables using #instVarAt: and #instVarAt:put:. However, in your case > it is probably easier if you use SIXX -- or try to adapt the > import/export code to use SmartRefStream -- that both can handle > instance variable changes. Then you only need to fix the "new" > variables. > > Lukas > > -- > Lukas Renggli > www.lukas-renggli.ch > > _______________________________________________ > Magritte, Pier a... > -- Lukas Renggli www.lukas-renggli.ch _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
On Wed, Apr 27, 2011 at 8:00 AM, Lukas Renggli <[hidden email]> wrote:
> To find out about the instance variables you have to compare the code, > i don't remember these changes of the top of my head. > > There is something else you might to try: There should be a class > PRMigrations (or similar, I don't have an image to verify) with a > bunch of class side methods that I used to bring the objects along > from the first version of Pier to today. Run #initialize after import > to give it a try. Not sure it handels well a non-incremental change > like in your case, but it is relatively safe to run as it does all > kind of verifications to validate and fix the model. Thanks, I will give it a whirl. Davorin Rusevljan _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
>> There is something else you might to try: There should be a class
>> PRMigrations (or similar, I don't have an image to verify) with a >> bunch of class side methods that I used to bring the objects along >> from the first version of Pier to today. Run #initialize after import >> to give it a try. Not sure it handels well a non-incremental change >> like in your case, but it is relatively safe to run as it does all >> kind of verifications to validate and fix the model. > > Thanks, I will give it a whirl. bummer. PRMigrations does not have anything related to embeded inst var. I have tried running initialize on it anyway, but it also breaks on: migrateLinkOwner method. I have executed all other migrate* methods. Changed all embeded instvars that had arrays in them to booleans with: PRLink allSubInstances do: [:link| (link embedded isKindOf: Array) ifTrue: [link embedded: (link embedded size > 0)]]. Only to move to another problem. PRPage(Object)>>doesNotUnderstand: #inject:into: Receiver: a PRPage[49283072] name: 'mainenvironment' Arguments and temporary variables: aMessage: inject: a WAHtmlAttributes() into: [:attributes :each | (self attrib...etc... exception: MessageNotUnderstood: PRPage>>inject:into: resumeValue: nil Receiver's instance variables: properties: a Dictionary(#documents->a Dictionary() #hideFromMenus->false #loca...etc... decorations: an Array(a PUSecurity[1069285376]) parent: a PRPage[7077888] name: 'pier' name: 'mainenvironment' title: '_Main Environment' tags: #() document: a PRDocument[408420352] PRReferenceRenderer(PRLinkRenderer)>>attributesFor: Receiver: a PRReferenceRenderer Arguments and temporary variables: aLink: a PRInternalLink[514588672] Receiver's instance variables: escaper: nil component: a PRPierFrame html: a WARenderCanvas parent: a PRViewRenderer link: a PRInternalLink[514588672] PRReferenceRenderer(PRLinkRenderer)>>anchorFor: Receiver: a PRReferenceRenderer Arguments and temporary variables: aLink: a PRInternalLink[514588672] anchor: a WAAnchorTag Receiver's instance variables: escaper: nil component: a PRPierFrame html: a WARenderCanvas parent: a PRViewRenderer link: a PRInternalLink[514588672] PRReferenceRenderer>>visitInternalLink: Receiver: a PRReferenceRenderer Arguments and temporary variables: aLink: a PRInternalLink[514588672] anchor: nil Receiver's instance variables: escaper: nil component: a PRPierFrame html: a WARenderCanvas parent: a PRViewRenderer link: a PRInternalLink[514588672] PRInternalLink>>accept: Receiver: a PRInternalLink[514588672] Arguments and temporary variables: aVisitor: a PRReferenceRenderer Receiver's instance variables: properties: nil children: #() reference: '/environment/header' owner: true embedded: false parameters: a PRPage[49283072] name: 'mainenvironment' target: a PRPage[348651520] name: 'header' anchor: nil > > Davorin Rusevljan > _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
Now Lukas,
please bear with me. I have fetched the 1.1 image that is running my blog to my local machine for inspection, and as you have suggested the origin of problems is that the layout of instance variables has changed from 1.1 to 1.2 and deserialization stuffs data into wrong slots, for instance old PRLink had instance variables: 'reference' 'embedded' 'parameters' While the new one has: 'reference' 'owner' 'embedded' 'parameters' which results in parameters getting stuffed into embedded inst var, so embedded after import suddenly has all those arrays in them instead of nice booleans the code expects. Now I have run a snippet of code to list all subclasses of PRObject in old and new image along with inst vars they have, and the diffed that. Result is 9 classes that have changed layout. I suspect some of them can not appear in serialized data, but I guess you will know better. Anyway for those 9 classes I would kindly ask you to give me a hint how to correctly migrate them, i.e. what to stuff into empty slots. So here goes the list (class, then old layout then new): ---------- PRAddCommand #('name' 'type' 'link') #('name' 'type' 'link' 'title') ---------- PRCommand #('timestamp' 'context' 'answer' 'checked') #('timestamp' 'context' 'checked' 'successAnswer' 'cancelAnswer' 'answer') ---------- PRComponent #('componentClass' 'settings') #('componentClass' 'settings' 'link') ---------- PRGoogleGadget #('url' 'xml' 'settings' 'description') #('url' 'xml' 'translations' 'settings' 'description') ---------- PRInternalLink #('owner' 'target' 'anchor') #('target' 'anchor') ---------- PRLink #('reference' 'embedded' 'parameters') #('reference' 'owner' 'embedded' 'parameters') ---------- PULogin #('ancestor' 'username' 'password' 'user') #('username' 'password' 'user') ---------- PUMember #('name') #('name' 'comment') ---------- PUUser #('password' 'groups' 'superuser') #('password' 'token' 'groups' 'superuser' 'firstName' 'lastName' 'email') Thanks! Davorin Rusevljan http://www.cloud208.com/ _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
> Now I have run a snippet of code to list all subclasses of PRObject in
> old and new image along with inst vars they have, and the diffed that. > Result is 9 classes that have changed layout. I suspect some of them > can not appear in serialized data, but I guess you will know better. Subclasses of PRCommand should not be part of the serialized data. > Anyway for those 9 classes I would kindly ask you to give me a hint > how to correctly migrate them, i.e. what to stuff into empty slots. So > here goes the list (class, then old layout then new): You just have to make sure that a value in inst-var 'x' ends up in inst-var 'x'. And that new variables are initialized with 'nil'. "PRMigration initialize" fixes the rest. Lukas -- Lukas Renggli www.lukas-renggli.ch _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
On Thu, Apr 28, 2011 at 6:41 PM, Lukas Renggli <[hidden email]> wrote:
> You just have to make sure that a value in inst-var 'x' ends up in > inst-var 'x'. And that new variables are initialized with 'nil'. > "PRMigration initialize" fixes the rest. Ok, there were still things to fix by hand after the PRMigration initialize, but I think I have managed to import kernel in the end. Although something along the way started html escaping parts of the html in my heading, but I guess I will look into that next day. Many thanks! Davorin Rusevljan http://www.cloud208.com/ _______________________________________________ Magritte, Pier and Related Tools ... https://www.iam.unibe.ch/mailman/listinfo/smallwiki |
Free forum by Nabble | Edit this page |