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
>>> 
>> 
>> 
> 


Reply via email to