[OJB 0.9.8ba]

Hi,

  I've come across a strange situation regarding extents, Identities and the
cache.
First, to clarify my understanding: Identities should contain the base class
in 'objectClass' and the concrete class in 'realObjectClass'. This means
that when comparing two Identities using equals() it will return true if
'objectClass' and the primary key(s) are the same. The concrete class is not
compared.

And now for the problem: when querying using getObjectByQuery() on an
extent, the broker internally creates an Identity whose objectClass is the
REAL class and not the extent class! Afterwards it tries looking up the
cache using this Identity and fails. This leads to cache inconsistency
because it then storfes the "new" object in the cache and thus we have two
entities which are the same entities residing in the cache.

I haven't had the time to take a closer look into the broker's code to
understand exactly where and when it does that.

Any ideas?

Thanks,
Tal

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to