Re: Why does invalidateObjects() force all other contexts to delete the object?

From: Mike Kienenberger (mkienen..laska.net)
Date: Thu Dec 30 2004 - 13:12:29 EST

  • Next message: jir..bjectstyle.org: "[OS-JIRA] Created: (CAY-256) InvalidateObject (also refetch) snapshot sync transient-izes object in other contexts"

    Probably even more damaging is that refetchObject() calls invalidateObject().

    So even if there's some small justification to treat an invalidated object
    as deleted in another context, there's none to treat a refetched object as a
    deleted object.

    -Mike

    Mike Kienenberger <mkienen..laska.net> wrote:
    > I've finally tracked down an insidious bug that's been hitting me.
    >
    > Whenever one datacontext invalidates an object, the object becomes
    transient
    > in all other contexts, rather than hollow.
    >
    > That doesn't seem right to me.
    >
    > The problem appears to be that ObjectStore.objectsInvalidated() changes
    its
    > own objects to HOLLOW, but then sends out a processSnapshotChanges() event

    > with the object marked as deleted.
    >
    > Then the DataRowStore deleted those objects when it receives the message.
    >
    > Somehow, a snapshot event needs to be sent out that invalidates rather
    than
    > deletes the object.
    >
    > Maybe this is only affecting me because I'm using a LocalEventBridge to
    > share events with dataDomain.setSharedCacheEnabled(false), but I still
    > believe there's an inconsistency here.
    >
    > Unfortunately, I can't think of a good solution or even workaround off the

    > top of my head.
    >
    > -Mike
    >



    This archive was generated by hypermail 2.0.0 : Thu Dec 30 2004 - 13:10:22 EST