I had another look, see https://issues.apache.org/jira/browse/OFBIZ-5192

Jacques

From: "Jacques Le Roux" <jacques.le.r...@les7arts.com>
> Jacques Le Roux wrote:
>> From: "Adrian Crum" <adrian.c...@sandglass-software.com>
>>> I don't understand what you mean when you say
>>> "entitycache.entity-list.default.PartyNameView nor
>>> entitycache.object-list.default.PartyNameView are not parts of
>>> utilCacheTable." Both of those caches extend
>>> AbstractEntityConditionCache, and that cache checks for view entities
>>> that the GenericValue is a member of. There is a chance there is a flaw
>>> in the view entity checking logic.
>> 
>> Yes that's what I think also. I will have a deeper look when I will get a 
>> chance
>> 
>> Jacques
> 
> OK, my answer was not clear. What I meant is we try to clear the caches of 
> entitycache.entity-list.default.PartyNameView and 
> entitycache.object-list.default.PartyNameView  using the content of 
> utilCacheTable which contains only entitycache.entity.default.PartyNameView. 
> So we don't find them and don't clear what we should (I guess 
> entitycache.entity.default.PartyNameView)
> 
> That's why I agree it's a  flaw in the view entity checking cache logic 
> regarding cache clearing. I'm looking at it...
> 
> Jacques
> 
>>> -Adrian
>>> 
>>> On 5/12/2013 10:30 PM, Jacques Le Roux wrote:
>>>> I had a quick look. As reported in the Jira this is an old neglected or 
>>>> unknown issue (reproductible in R11.04 and R12.04)
>>>> 
>>>> In this peculiar case, when storing we clear the cache for 2 entities: 
>>>> Person and Party.
>>>> We use an  EntityView in the display-entity (PartyNameView) and clearing 
>>>> the entity cache does not refresh the EntityView
>>>> cache. In other words, the cache clearing done by 
>>>> this.clearCacheLine(value) in GenericDelegator.store() does not propagated 
>>>> to
>>>> the EntityView cache. This is simply because 
>>>> entitycache.entity-list.default.PartyNameView nor
>>>> entitycache.object-list.default.PartyNameView are not parts of 
>>>> utilCacheTable. I noticed tough that
>>>> entitycache.entity.default.PartyNameView is. I stopped there...    
>>>> 
>>>> Note that the the 
>>>> this.distributedCacheClear.distributedClearCacheLine(value) is 
>>>> automatically done in
>>>> GenericDelegator.clearCacheLine(). 
>>>> 
>>>> HTH
>>>> 
>>>> Jacques
>>>> 
>>>> From: "Adrian Crum" <adrian.c...@sandglass-software.com>
>>>>> I fixed the entity condition cache. The cache being used in OFBIZ-5192
>>>>> is the primary key cache. So that is the one to look at.
>>>>> 
>>>>> Most likely, the code that saves the changes to Person is not clearing
>>>>> the pk cache - so that's why you see the stale data after an update.
>>>>> 
>>>>> The entity model overhaul has nothing to do with this problem.
>>>>> 
>>>>> -Adrian
>>>>> 
>>>>> On 5/11/2013 11:32 AM, Jacques Le Roux wrote:
>>>>>> Ha, I thought you had already fixed the underneath issue. Now I remember 
>>>>>> you also warned us at
>>>>>> https://issues.apache.org/jira/browse/OFBIZ-5146 and DCC will still to 
>>>>>> be done 
>>>>>> 
>>>>>> OK, though it's not a biggie (not caching here does not hurt), I will 
>>>>>> revert
>>>>>> 
>>>>>> Note that I don't agree with
>>>>>>>>> Anyway, this should
>>>>>>>>> not be a problem on the trunk.
>>>>>> As I said it's easy to reproduce on trunk demo
>>>>>> 
>>>>>> To be sure to understand. When your entity model overhaul WIP will be 
>>>>>> committed this will fix this (kinda?) issue(s?) ?
>>>>>> 
>>>>>> Thanks
>>>>>> 
>>>>>> Jacques
>>>>>> 
>>>>>> From: "Adrian Crum" <adrian.c...@sandglass-software.com>
>>>>>>> You believe wrong.
>>>>>>> 
>>>>>>> Please revert the OFBIZ-5192 related commits, then spend some time
>>>>>>> reviewing the discussion with the subject: "Important: Entity list cache
>>>>>>> and GenericValue discussion".
>>>>>>> 
>>>>>>> Understand the problem before you try to fix it.
>>>>>>> 
>>>>>>> -Adrian
>>>>>>> 
>>>>>>> On 5/11/2013 11:02 AM, Jacques Le Roux wrote:
>>>>>>>> I intially reproduced with trunk demo, so I fixed it there and 
>>>>>>>> backported.
>>>>>>>> I believe it's unrelated to the issues you fixed
>>>>>>>> 
>>>>>>>> Jacques
>>>>>>>> 
>>>>>>>> From: "Adrian Crum" <adrian.c...@sandglass-software.com>
>>>>>>>>> Oops, I didn't notice this was on a release branch. Anyway, this 
>>>>>>>>> should
>>>>>>>>> not be a problem on the trunk.
>>>>>>>>> 
>>>>>>>>> -Adrian
>>>>>>>>> 
>>>>>>>>> On 5/11/2013 10:14 AM, Adrian Crum wrote:
>>>>>>>>>> Are you sure this change is necessary? I fixed the caching problem a
>>>>>>>>>> few days ago.
>>>>>>>>>> 
>>>>>>>>>> -Adrian
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On 5/11/2013 10:09 AM, jler...@apache.org wrote:
>>>>>>>>>>> Author: jleroux
>>>>>>>>>>> Date: Sat May 11 09:09:26 2013
>>>>>>>>>>> New Revision: 1481276
>>>>>>>>>>> 
>>>>>>>>>>> URL: http://svn.apache.org/r1481276
>>>>>>>>>>> Log:
>>>>>>>>>>> "Applied fix from trunk for revision: 1481274"
>>>>>>>>>>> ------------------------------------------------------------------------
>>>>>>>>>>> r1481274 | jleroux | 2013-05-11 10:52:25 +0200 (sam., 11 mai 2013) |
>>>>>>>>>>> 14 lines
>>>>>>>>>>> 
>>>>>>>>>>> Fix "Name in List Related Contacts form doesn't get updated" 
>>>>>>>>>>> reported
>>>>>>>>>>> by Karl Beecher at https://issues.apache.org/jira/browse/OFBIZ-5192
>>>>>>>>>>> 
>>>>>>>>>>> If a person is set as a related contact for a party, updates to 
>>>>>>>>>>> their
>>>>>>>>>>> name are not immediately displayed by the ListRelatedContacts form.
>>>>>>>>>>> 
>>>>>>>>>>> To reproduce (with OFBiz demo data):
>>>>>>>>>>> * In the Party Manager, go to the profile page of DemoSupplier (they
>>>>>>>>>>> have a related contact called 'Peter Manager'
>>>>>>>>>>> * Follow the link to Peter Manager's profile page.
>>>>>>>>>>> * Click Update and change the name (e.g. to 'Peter Manageress')
>>>>>>>>>>> * Save
>>>>>>>>>>> * Return to DemoSupplier's profile page. Observe that the name of 
>>>>>>>>>>> the
>>>>>>>>>>> related contact is still 'Peter Manager'. Refreshing doesn't change
>>>>>>>>>>> that.
>>>>>>>>>>> * Restart OFBiz
>>>>>>>>>>> * Refreshing the profile page now displays the updated name.
>>>>>>>>>>> 
>>>>>>>>>>> jleroux: to test in trunk I used company and scrum employee
>>>>>>>>>>> ------------------------------------------------------------------------
>>>>>>>>>>> 
>>>>>>>>>>> Modified:
>>>>>>>>>>>         ofbiz/branches/release12.04/   (props changed)
>>>>>>>>>>> ofbiz/branches/release12.04/applications/party/widget/partymgr/PartyForms.xml
>>>>>>>>>>> 
>>>>>>>>>>> Propchange: ofbiz/branches/release12.04/
>>>>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>>>>> 
>>>>>>>>>>>       Merged /ofbiz/trunk:r1470176,1481274
>>>>>>>>>>> 
>>>>>>>>>>> Modified:
>>>>>>>>>>> ofbiz/branches/release12.04/applications/party/widget/partymgr/PartyForms.xml
>>>>>>>>>>> URL:
>>>>>>>>>>> http://svn.apache.org/viewvc/ofbiz/branches/release12.04/applications/party/widget/partymgr/PartyForms.xml?rev=1481276&r1=1481275&r2=1481276&view=diff
>>>>>>>>>>> ==============================================================================
>>>>>>>>>>> 
>>>>>>>>>>> ---
>>>>>>>>>>> ofbiz/branches/release12.04/applications/party/widget/partymgr/PartyForms.xml
>>>>>>>>>>> (original)
>>>>>>>>>>> +++
>>>>>>>>>>> ofbiz/branches/release12.04/applications/party/widget/partymgr/PartyForms.xml
>>>>>>>>>>> Sat May 11 09:09:26 2013
>>>>>>>>>>> @@ -771,7 +771,7 @@ under the License.
>>>>>>>>>>>            <form name="ListRelatedContacts" type="list"
>>>>>>>>>>> list-name="contacts" default-table-style="basic-table">
>>>>>>>>>>>              <field name="partyIdTo">
>>>>>>>>>>> -            <display-entity entity-name="PartyNameView"
>>>>>>>>>>> description="${firstName} ${middleName} ${lastName} ${groupName}"
>>>>>>>>>>> key-field-name="partyId">
>>>>>>>>>>> +            <display-entity entity-name="PartyNameView"
>>>>>>>>>>> description="${firstName} ${middleName} ${lastName} ${groupName}"
>>>>>>>>>>> key-field-name="partyId" cache="false">
>>>>>>>>>>>                      <sub-hyperlink description="[${partyIdTo}]"
>>>>>>>>>>> target="viewprofile">
>>>>>>>>>>>                      <parameter param-name="partyId"
>>>>>>>>>>> from-field="partyIdTo"/>
>>>>>>>>>>>                  </sub-hyperlink>
>

Reply via email to