I reran my tests, and, yes, the invalidateObjects is failing because I
had sharedCacheEnabled set to false.  (I had set it in my java code
rather than in the model, so it took me awhile to find it.)

            dataDomain.setSharedCacheEnabled(false);

Once I change that to true, invalidateObjects works again.

The problem appears to be in DataDomainQueryAction.interceptRefreshQuery()

                if (domain.getSharedSnapshotCache() != null) {
                    // send an event for removed snapshots
                    domain.getSharedSnapshotCache().processSnapshotChanges(
                            context.getObjectStore(),
                            Collections.EMPTY_MAP,
                            Collections.EMPTY_LIST,
                            ids,
                            Collections.EMPTY_LIST);
                }

should have an else statement along these lines.

               else {
                     // remove snapshots from local ObjectStore only

context.getObjectStore(),getDataRowCache().processSnapshotChanges(
                            context.getObjectStore(),
                            Collections.EMPTY_MAP,
                            Collections.EMPTY_LIST,
                            ids,
                            Collections.EMPTY_LIST);
              }


On Mon, Nov 4, 2013 at 8:44 AM, Mike Kienenberger <[email protected]> wrote:
> On Mon, Nov 4, 2013 at 8:36 AM, Andrus Adamchik <[email protected]> 
> wrote:
>> ObjectStores listen for each other’s events. See 
>> ObjectStore.setDataRowCache(..) (BTW this is the code I want to simplify per 
>> 'Removing "use shared cache” option’ thread).
>
> I wonder if I had unchecked "use shared cache" when I was looking into
> this problem.
>
> I haven't looked at this in a month, so I'll have to go review it
> again.   I'll try to find some time to do that today.

Reply via email to