Table A-2. Lifecycle-state transitions
|
|
makePersistent
|
P-new
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
deletePersistent
|
error
|
P-new-del
|
P-del
|
P-del
|
P-del
|
makeTransactional
|
T-clean
|
unchanged
|
unchanged
|
unchanged
|
P-clean
|
makeNontransactional
|
error
|
error
|
P-nontrans
|
error
|
unchanged
|
makeTransient
|
unchanged
|
error
|
Transient
|
error
|
Transient
|
commit withRetainValues = false
|
unchanged
|
Hollow
|
Hollow
|
Hollow
|
unchanged
|
commit withRetainValues = true
|
unchanged
|
P-nontrans
|
P-nontrans
|
P-nontrans
|
unchanged
|
rollback with RestoreValues = false
|
unchanged
|
Transient
|
Hollow
|
Hollow
|
unchanged
|
rollback with RestoreValues = true
|
unchanged
|
Transient
|
P-nontrans
|
P-nontrans
|
unchanged
|
refresh with active datastore transaction
|
unchanged
|
unchanged
|
unchanged
|
P-clean
|
unchanged
|
refresh with active optimistic transaction
|
unchanged
|
unchanged
|
unchanged
|
P-nontrans
|
unchanged
|
evict
|
n/a
|
unchanged
|
Hollow
|
unchanged
|
unchanged
|
read field outsideof a transaction
|
unchanged
|
impossible
|
impossible
|
impossible
|
P-nontrans
|
read field with active optimistic transaction
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
P-nontrans
|
read field with active datastore transaction
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
P-clean
|
write field or makeDirty outside of a transaction
|
unchanged
|
impossible
|
impossible
|
impossible
|
P-nontrans
|
write field or makeDirty with active transaction
|
unchanged
|
unchanged
|
P-dirty
|
unchanged
|
P-dirty
|
retrieve outside of a transaction or with active optimistic
transaction
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
P-nontrans
|
retrieve with active datastore transaction
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
P-clean
|
Table A-3. Lifecycle-state transitions (continued)
|
|
P-new
|
P-new
|
unchanged
|
unchanged
|
unchanged
|
makePersistent
|
error
|
error
|
unchanged
|
unchanged
|
P-del
|
deletePersistent
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
P-clean
|
makeTransactional
|
Transient
|
error
|
error
|
error
|
unchanged
|
makeNontransactional
|
unchanged
|
unchanged
|
error
|
error
|
Transient
|
makeTransient
|
unchanged
|
T-clean
|
Transient
|
Transient
|
unchanged
|
commit withRetainValues = false
|
unchanged
|
T-clean
|
Transient
|
Transient
|
unchanged
|
commit withRetainValues = true
|
unchanged
|
T-clean
|
Transient
|
Hollow
|
unchanged
|
rollback withRestoreValues = false
|
unchanged
|
T-clean
|
Transient
|
P-nontrans
|
unchanged
|
rollback withRestoreValues = true
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
refresh with active datastore transaction
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
refresh with active optimistic transaction
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
Hollow
|
evict
|
unchanged
|
impossible
|
impossible
|
impossible
|
unchanged
|
read field outsideof a transaction
|
unchanged
|
unchanged
|
error
|
error
|
unchanged
|
read field with active optimistic transaction
|
unchanged
|
unchanged
|
error
|
error
|
P-clean
|
read field with active datastore transaction
|
unchanged
|
impossible
|
impossible
|
impossible
|
unchanged
|
write field or makeDirty outside of a transaction
|
T-dirty
|
unchanged
|
error
|
error
|
P-dirty
|
write field or makeDirty with active transaction
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
retrieve outside of a transaction or with active optimistic
transaction
|
unchanged
|
unchanged
|
unchanged
|
unchanged
|
P-clean
|
retrieve with an active datastore transaction
|
unchanged: no state change takes place; no exception is thrown due to
the state change