-
Bug
-
Resolution: Done
-
Major
-
6.3.0.Final
-
None
-
None
-
-
-
NEW
-
NEW
In the presence of a class heirarchy, the ClassAwareObjectStore doesn't properly manage the relationships between SingleClassStores - specifically, it can become permanently corrupt if the following order of events occurs:
- Insert object of type BaseClass
- Query for objects of type SubClass
- Note that it's important this query is fully evaluated (e.g. copy it into a list)
- Insert object of type SubClass
Subsequent queries for objects of type BaseClass will not return objects of type SubClass. If the intervening query for SubClass is left out, they would.
The problem's in ClassAwareObjectStore#getOrCreateConcreteClass, where it tries to concretize an existing (non-concrete) store. It should go through the same "linking" process that gets done in the existingStore == null case (and half of which is done already in #getOrCreateClassStore).