polygene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tibor Mlynarik <tibor.mlyna...@gmail.com>
Subject Re: JSONEntityState internal clone logic
Date Thu, 23 Jul 2015 16:31:27 GMT
Hi Paul,

I have prepared test case to demonstrate issue.
Problem is if there is enabled cache in json based entity store.
Entities could be in wrong state.

see here :
https://github.com/apache/zest-qi4j/pull/2

to make test success, fix :

JSONEntityState
    void cloneStateIfGlobalStateLoaded()
    {
        if( ! isStateNotCloned() )


there is one more fix needed in JSONMapEntityStoreMixin#fetchCachedState method .

Note: I was not able to configure entity store with cache service in one layer ,
probably because of circular dependency: store uses cache, cache need store for config .

cheers,

	Tibor


On Jul 23, 2015, at 1:49 PM, Paul Merlin <paul@nosphere.org> wrote:

> Hi Tibor,
> 
> Tibor Mlynarik a écrit :
>> Hi,
>> 
>> I have noticed code in JSONEntityState that seems suspicious for me.
>> 
>> In method JSONEntityState#cloneStateIfGlobalStateLoaded
>> if parts are swapped.
>> 
>> I suppose that by global state is meant copy taken from cache that is shared across
UoWs.
>> And before first entity change own copy for UoW should be cloned.
>> 
>> But as it is now, cloning is not done at first change and redundantly executed with
each entity change.
>> Also maybe whole cloning could be avoided if cache is not used.
>> 
>> Or am I wrong in understanding of purpose of this state clone ?
> IIRC this is the sole purpose of this state clone.
> As you pointed out there may be room for improvements here.
> 
> Niclas, WDYT?
> 
> /Paul
> 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message