[Seaside] Bug in Set backtracking

Avi Bryant avi.bryant at gmail.com
Wed Oct 19 17:26:06 UTC 2005


On Oct 17, 2005, at 8:40 PM, David Shaffer wrote:

> I've been having problems with the WATree component and tracked it  
> down
> to the snapshotCopy mechanism performing only a shallow copy of the  
> Set
> used to track expanded nodes.  Maybe this has been fixed in later
> Seaside/Squeak versions but as of Seaside2.5/Squeak3.7 this doesn't
> work.  Attached are a test case (and component) which demonstrate the
> problem and a fix.  I'll post the fix to the Seaside MC repo unless I
> hear that there is a problem with it...

>
> !Set methodsFor: '*seaside2' stamp: 'cds 10/17/2005 23:30'!
> snapshotCopy
>     ^self copy! !


I'm pretty sure that  you also need to override #restoreFromSnapshot:  
to do a full #copy as well.  Otherwise after a restore, the  
snapshot's internal state will #== the original's internal state, so  
that when you backtrack a *second* time you'll have issues.

Avi


More information about the Seaside mailing list