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.