On Sat, Apr 23, 2011 at 8:48 AM, Lukas Renggli <renggli(a)gmail.com> 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 <davorin.rusevljan(a)gmail.com> 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