StoreDataCorruptedException, ObjectIOClassNotFoundException,
ObjectIODataCorruptedException, HeapException,
StoreTooBigForSerializationException {
// store.storedMutableEnum(EnumForTest.VAL1);
BobContainer bobContainer = new BobContainer();
EnumForTest enumForTest = EnumForTest.VAL1;
enumForTest.setObject(null);
bobContainer.setObject1(enumForTest);
final Map<EnumKey, Enum<?>> storedEnumMap = new PTreeMap<EnumKey, Enum<?>>();
storedEnumMap.put(new EnumKey(EnumForTest.VAL1), EnumForTest.VAL1);
store.setRoot(bobContainer, storedEnumMap);
store.save(true, false);
DATA_MANAGER_INTEGRITY_CHECKER.checkIntegrity(dataManager);
bobContainer = (BobContainer) store.readAndGetRoot();
assertNotNull("root must be defined", bobContainer);
DataRecordIdentifier idc = store
.getDataRecordIdentifierAssociatedToObject(bobContainer);
assertNotNull(BOB_CONTAINER_MUST_HAVE_DATA_RECORD_IDENTIFIER, idc);
enumForTest = (EnumForTest) bobContainer.getObject1();
DataRecordIdentifier idEnum = store
.getDataRecordIdentifierAssociatedToObject(enumForTest);
assertNotNull("enum must have data record identifier", idEnum);
assertObjectLink(BobContainer.class, idc,
new DataRecordIdentifier[] { idEnum });
Bob1 bob1 = new Bob1();
enumForTest.setObject(bob1);
store.save(true, false);
DATA_MANAGER_INTEGRITY_CHECKER.checkIntegrity(dataManager);
bobContainer = (BobContainer) store.readAndGetRoot();
assertNotNull("must has a root object", bobContainer);
idc = store.getDataRecordIdentifierAssociatedToObject(bobContainer);
assertNotNull(BOB_CONTAINER_MUST_HAVE_DATA_RECORD_IDENTIFIER, idc);
enumForTest = (EnumForTest) bobContainer.getObject1();
idEnum = store.getDataRecordIdentifierAssociatedToObject(enumForTest);
assertNotNull("enul must have data record identifier", idEnum);
bob1 = (Bob1) enumForTest.getObject();
final DataRecordIdentifier id1 = store
.getDataRecordIdentifierAssociatedToObject(bob1);
assertNotNull(BOB1_MUST_HAVE_DATA_RECORD_IDENTIFIER, id1);
assertObjectLink(EnumForTest.class, idEnum,