[Seaside] A recurring DNU
Nevin Pratt
nevin at smalltalkpro.com
Mon Aug 11 22:04:18 CEST 2003
This is from the version of Seaside found on SqueakMap a week or so ago.
When an "unknownRequest" is received (i.e., a request for which there
is no actionKey associated with it-- which likely means that the session
has expired), the following is called:
WASession>>unknownRequest:
self pageExpired
As you can see, the above code just calls #pageExpired. This seems
pretty reasonable so far. After all, if there is no actionKey
associated with the request, the page must have expired, right? Anyway,
#pageExpired is implemented thus:
WASession>>pageExpired
expiryContinuation value: nil
The 'expiryContinuation' in the above code is a block, found here:
WASession>>wrapContinuation: aContinuation
| snap |
snap _ state snapshot.
^ [:v |
state restoreSnapshot: snap.
aContinuation value: v]
So, in the above 'aContinuation value: v', the 'v' is a nil, because
'WASession>>pageExpired' called it with a nil argument. The
'aContinuation' in the above code in turn is a block, found here:
bookmarkForExpiry
^ Continuation
currentDo: [:cc | expiryContinuation _ self
wrapContinuation: [:v |
self redirectWithMessage: 'That page has
expired.' delay: 3.
cc value: v]]
In here, both the 'cc' and the 'v' temps are both nil, and this creates
a 'MessageNotUnderstood: value:' because UndefinedObject does not
understand #value:
Does this problem ring a bell for anybody? I'm getting a couple of
these DNU's a day now. I never used to get them with the previous
Seaside version from SqueakMap.
Nevin
--
Nevin Pratt
Bountiful Baby
http://www.bountifulbaby.com
(801) 992-3137
More information about the Seaside
mailing list