So i now have GOODs working semi reliably and as expected on Pharo 1.3 (squeaksource GOODS). I still don't know the root cause but I will work on it.
I will just document my problem and how i fixed it in case anyone else runs into the same issue. I will also look at submitting the new test cases to the GOODs on squeaksource The root of the object database in goods is a Dictionary - pointing to various objects including a dictionary of users for seaside. When I would login the user into the seaside session, I would look up object previously from the dictionary of users. I then assume that any changes to the users would be persisted by the db commit command. eg establish xDict:= lookup dictionary of users from Goods session establish connection to database session login user using xDict to check for password etc. change user or subobjects ---> changes to the subojects were not saved here! session db commit --> write it all to the database. session logout -- disconnect db. the problem was that xDict was not linked to Goods anymore or had grown stale. So i could make a change to user and it would save but the sub objects would not be updated. The fix is during the session login user I need to traverse the entire goods db to retrieve the user. Then all commits etc work. eg: establish xDict:= lookup dictionary of users from Goods session establish connection to database session login user ---from xDict tUser:= traverse Goods until you find user save tUser (not the one found from xDict) . change user or subobjects session db commit --> write it all to the database. session logout -- disconnect db. S. On Nov 1, 2011, at 7:41 PM, mail list wrote: > Let me come up with a proper failing testcase and I will update the list. I > was hoping for some general insight as I assumed it was just my misuse of the > packages. > > S. > On Nov 1, 2011, at 5:34 PM, Stéphane Ducasse wrote: > >> let us know >> because core collection should be really robust. >> >> Stef >> >> >> On Nov 1, 2011, at 9:52 AM, mail list wrote: >> >>> I will check. Thank you. >>> >>> The problem is definitely something related to 'reachability'. eg I can >>> save the top level objects but the second level objects (eg instance >>> varaibles of the top level) I can not get to save. >>> >>> S. >>> On Nov 1, 2011, at 2:59 PM, Lukas Renggli wrote: >>> >>>> Not sure if this is related, but the collection hierarchy got refactored >>>> in Pharo at some point to include HashedCollection (AFAIR) as superclass. >>>> Maybe this broke something with the persistence of Sets and Dictionaries? >>>> >>>> Lukas >>>> >>>> On Tuesday, 1 November 2011, mail list <mail.l...@ficonab.com> wrote: >>>>> I am trying to deploy a Pharo 1.3 image using Goods and running into some >>>>> basic issues where my objects are not persisted by reachability. >>>>> eg I put dictionary x at root under a key 'test' >>>>> eg db root at: 'test' put x. >>>>> db commit. >>>>> Then at x i updated instance variable and add something to its dictionary >>>>> and committ >>>>> eg x intancevariable y at: 'key' put 'zzzz' >>>>> db commit >>>>> >>>>> looking at the root x does not get updated with y. >>>>> >>>>> I have the majority of the test cases pasing except for testIdentitySet >>>>> and testFlushAllRemovesAllUnreferenced. >>>>> >>>>> In testIdentitySet the following failure >>>>> | set x y y2 | >>>>> set := KKIdentitySet database: dbOne. >>>>> x := 1@1. >>>>> y := 2@2. >>>>> set add: x. >>>>> set add: y. >>>>> self assert: (set includes: x). >>>>> self assert: (set includes: y). >>>>> self deny: (set includes: 1@1). -->fails >>>>> >>>>> set = (2@2,1@1) >>>>> so it seems to think that x and 1@1 are the same. Which to me seems >>>>> correct but I may be misunderstanding the testcase. >>>>> >>>>> Any thoughts or pointers to update my mistakes in using Goods db would be >>>>> helpful. >>>>> >>>>> S. >>>>> On Oct 31, 2011, at 5:49 PM, Marcus Denker wrote: >>>>> >>>>>> 13320 >>>>>> ----- >>>>>> >>>>>> Issue 4945: Weird Settings filtering >>>>>> http://code.google.com/p/pharo/issues/detail?id=4945 >>>>>> >>>>>> -- >>>>>> Marcus Denker -- http://marcusdenker.de >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> -- >>>> Lukas Renggli >>>> www.lukas-renggli.ch >>> >> >> >