Michelle, Craig,
Martin Zaun wrote:
I'm currently going over the lifecycle spreadsheet, checking the
transition-related assertions for coverage by A5.9.1..190 and the
newly implemented cases, and preparing a few comments (which I'll
send to you soon).
Please, find attached a first batch of comments on the latest
spreadsheet's lifecycle tab (did an svn update this morning).
A few more will follow this afternoon (have an appointment).
Martin
----------------------------------------------------------------------
A5.1-2 JDO instances might be either transient yes
lifecycle/StateTransitions.java Sufficient with tests in StateTransitions.java
A5.1-AD1 detached no new for JDO 2
A5.1-1 Or persistent yes lifecycle/StateTransitions.java
Sufficient with tests in StateTransitions.java
Perhaps somewhat sophistically, I'd NOT mark these three assertions as
implemented by StateTransitions.java. I rather see them as
- one assertion (it only has one verb!), which could be merged as
one row in the spreadsheet (as done with others), and which is
- non-testable, because the sentence is always true (tautological)
by design of the interrogative JDO methods (cannot be failed by
any implementation).
----------------------------------------------------------------------
A5.4.3-7 the persistent instance might transition to
persistent-nontransactional or hollow but cannot transition to any other state
afterward 3 no Not testable with RI
If I'm not mistaken, this assertion is always false by the state transition
table in the spec, which does show other successor states for hollow and
persistent-nontransactional.
----------------------------------------------------------------------
A5.4.3-8 attempts to access the instance in the hollow state will throw
a JDOUserException; 1 no Not testable with RI
Insufficient language, hence, wrong if taken literally:
- assumes that "access" means reading or writing *managed* fields
- spec's transition table shows no exception but valid transitions for
reads/writes inside/outside transactions
I think, however, there's an JDOUserException to be thrown (only) if
outside tx and the managed field wasn't loaded. This case would be
testable, so it shouldn't say "Not testable with RI", but I think it's
currently NOT tested by StateTransitions.java.
----------------------------------------------------------------------
A5.5-1 A5.5-1 [ There are ten states defined by this specification. Seven
states are required, and three states are optional. ]
yes lifecycle/StateTransitions.java DUPLICATE A5.9-1..A5.9-190
Wrong if taken literally, there are actually 13 (observable) states now:
1 Transient, 2 P-new, 3 P-clean, 4 P-dirty, 5 Hollow,
6 T-clean, 7 T-dirty, 8 P-new-del, 9 P-del, 10 P-nontrans,
11 P-nontrans-dirty, 12 detached-clean, 13 detached-dirty
Correctly marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.1-7w Transient state: A5.5.1-7 [ A transient instance transitions to
persistent-new if it is the parameter of makePersistent],
yes lifecycle/StateTransitions.java DUPLICATE A5.9.1..A5.9.190
Correctly marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
Actually, this is also a duplicate of: A5.5.2-1
----------------------------------------------------------------------
A5.5.2-1 Persistent-new state: A5.5.2-1 [ JDO instances that are newly
persistent in the current transaction are persistent-new. This is the state of
an instance that has been requested by the application component to become
persistent, by using the PersistenceManager makePersistent method on the
instance.] yes lifecycle/StateTransitions.java
DUPLICATE A5.9.1..A5.9.190
Correctly marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.2-4 Persistent-new state: A5.5.2-4 [ A persistent-new instance
transitions to persistent-new-deleted if it is the parameter of
deletePersistent.] yes lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.2-5 Persistent-new state: A5.5.2-5 [ A persistent-new instance
transitions to hollow when it is flushed to the datastore during commit when
retainValues is false. This transition is not visible during beforeCompletion,
and is visible during afterCompletion.] yes
lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.2-6 Persistent-new state: A5.5.2-6 [ A persistent-new instance
transitions to transient at rollback.] yes
lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.3-1 Persistent-dirty state: A5.5.3-1 [ JDO instances that represent
persistent data that was changed in the current transaction are
persistent-dirty.] yes lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.3-2 Persistent-dirty state: A5.5.3-2 [ A persistent-dirty instance
transitions to persistent-deleted if it is the parameter of deletePersistent.]
yes lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.3-3 Persistent-dirty state: Persistent-dirty instances transition
to hollow during A5.5.3-3 [ commit] when retainValues is false
yes lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.3-4 Persistent-dirty state: Persistent-dirty instances transition
to hollow during A5.5.3-3 [ commit] when retainValues is false or during
A5.5.3-4 [ rollback] when restoreValues is false. yes
lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.3-6 Persistent-dirty state: A5.5.3-6 [ If a modification was made
to any managed field that changes the value of the field, then the
implementation must mark the instanceas dirty.] yes
lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.4-1 Hollow state: A5.5.4-1 [ During the commit of the transaction
in which a dirty persistent instance has had its values changed (including a
new persistent instance), the underlying datastore is changed to have the
transactionally consistent values from the JDO instance, and the instance
transitions to hollow. Requests by the application for an instance with the
same JDO identity (query, navigation, or lookup by ObjectId), in a subsequent
transaction using the same PersistenceManager instance, will return the
identical Java instance], yes
lifecycle/StateTransitions.java
Assertion is wrong if taken literally: A dirty instance may also
transition to p-nontransactional or detached, depending on PM settings.
Aso, in my view this assertion is NOT tested by StateTransitions.java:
- not checked that the values are actually written to db
- not checked that subsequent transaction return the same instance
----------------------------------------------------------------------
A5.5.4-4 Hollow state: A5.5.4-4 [ A hollow instance transitions to
persistent-deleted if it is the parameter of deletePersistent.]
yes lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.4-5 Hollow state: A5.5.4-5 [ A hollow instance transitions to
persistent-dirty if a change is made to any managed field.]
yes lifecycle/StateTransitions.java
Assertion is wrong if taken literally: only correct for inside transaction;
outside tx, a hollow instance transitions to p-nontransactional, I think.
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.4-6 Hollow state: A5.5.4-6 [ It transitions to persistent-clean if
a read access is made to any per-sistent field other than one of the primary
key fields.] yes lifecycle/StateTransitions.java
Assertion is wrong if taken literally: only correct for inside datastore
transaction; with active optimistic tx, a hollow instance transitions to
p-nontransactional; outside transaction, a JDOUserException is thrown,
I think.
Craig, the latter doesn't appear to be tested by StateTransitions.java.
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.4-AD1 A hollow instance transitions to detached if its persistence
manager is closed while the DetachOnClose property is true.
no new for JDO 2
Should be marked as DUPLICATE A5.9-1..A5.9-190.
----------------------------------------------------------------------
A5.5.5-1 Close property is true. yes
lifecycle/StateTransitions.java
Sorry, no idea what this assertion means. I cannot imagine a connection
with StateTransitions.java.
----------------------------------------------------------------------
A5.5.5-2 Persistent-clean state: A5.5.5-2 [ A persistent-clean instance
transitions to persistent-deleted if it is the parameter of deletePersistent.]
yes lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.5-3 Persistent-clean state: A5.5.5-3 [ A persistent-clean instance
transitions to persistent-nontransactional if it is the parameter of
makeNontransactional.] yes
lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.5-4 Persistent-clean state: A persistent-clean instance transitions
to hollow at A5.5.5-4 [ commit when retainValues is false;]
yes lifecycle/StateTransitions.java
Correct, but what if there's also DetachAllOnCommit=true ?
Which setting prevails: retainValues=false or DetachAllOnCommit=true ?
----------------------------------------------------------------------
A5.5.5-5 Persistent-clean state: A persistent-clean instance transitions
to hollow at A5.5.5-4 [ commit when retainValues is false;]or A5.5.5-5 [
rollback when restoreValues is false.] yes
lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.6-1 Persistent-deleted state: A5.5.6-1 [ JDO instances that
represent specific persistent data in the datastore, and that have been deleted
in the current transaction, are persistent-deleted.] yes
lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.6-3 Persistent-deleted state: A5.5.6-2 [ Read access to primary key
fields is permitted] but A5.5.6-3 &A5.5.6-4 [ any access to persistent fields
will throw a JDOUserException.] 3 no
unimpl_tests/com/sun/jdotck/lifecycle/NonPrimaryKeyFieldAccessOfPersistentDeletedInstance.java
(Read access) Easy to test
A5.5.6-4 Persistent-deleted state: A5.5.6-2 [ Read access to primary key
fields is permitted] but A5.5.6-3 &A5.5.6-4 [ any access to persistent fields
will throw a JDOUserException.] 3 no
unimpl_tests/com/sun/jdotck/lifecycle/NonPrimaryKeyFieldAccessOfPersistentDeletedInstance.java
(Write access) Easy to test
I think these two should be marked as DUPLICATE A5.9-1..A5.9-190, and it
should be tested by StateTransitions.java, but I'm not quite sure it is.
----------------------------------------------------------------------
A5.5.6-5 Persistent-deleted state: A5.5.6-5 [ A persistent-deleted
instance transitions to transient at commit. During the tran-sition, its
persistent fields are written with their Java default values, and the instance
loses its JDO Identity and its association with the PersistenceManager.]
yes lifecycle/StateTransitions.java
Only the first sentence (state-transition) is a DUPLICATE A5.9-1..A5.9-190,
and tested by StateTransitions.java, but the second sentence is not!
----------------------------------------------------------------------
A5.5.6-6 Persistent-deleted state: A5.5.6-6 [ A persistent-deleted
instance transitions to hollow at rollback when restore-Values is false. The
instance retains its JDO Identity and its association with the
PersistenceManager.] yes
lifecycle/StateTransitions.java
Only the first sentence (state-transition) is a DUPLICATE A5.9-1..A5.9-190,
and tested by StateTransitions.java, but the second sentence is not!
----------------------------------------------------------------------
A5.5.7-1 Persistent-new-deleted state: A5.5.7-1 [ JDO instances that
represent instances that have been newly made persistent and deleted in the
current transaction are persistent-new-deleted.] yes
lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.7-3 Persistent-new-deleted state: A5.5.7-2 [ Read access to primary
key fields is permitted] but A5.5.7-3 &A5.5.7-4 [ any other access to
persistent fields will throw a JDOUserException.] 3 no
(Read access) Easy to test
A5.5.7-4 Persistent-new-deleted state: A5.5.7-2 [ Read access to primary
key fields is permitted] but A5.5.7-3 &A5.5.7-4 [ any other access to
persistent fields will throw a JDOUserException.] 3 no
(Write access) Easy to test
I think these two should be marked as DUPLICATE A5.9-1..A5.9-190, and it
should be tested by StateTransitions.java, but I'm not quite sure it is.
----------------------------------------------------------------------
A5.5.7-5 Persistent-new-deleted state: A5.5.7-5 [ A
persistent-new-deleted instance transitions to transient at commit. During the
transition, its persistent fields are written with their Java default values,
and the instance loses its JDO Identity and its association with the
PersistenceManager.] yes
lifecycle/StateTransitions.java
Only the first sentence (state-transition) is a DUPLICATE A5.9-1..A5.9-190,
and tested by StateTransitions.java, but the second sentence is not!
----------------------------------------------------------------------
A5.5.7-6 Persistent-new-deleted state: A5.5.7-6 [ A
persistent-new-deleted instance transitions to transient at rollback. The
instance loses its JDO Identity and its association with the
PersistenceManager.] yes lifecycle/StateTransitions.java
Only the first sentence (state-transition) is a DUPLICATE A5.9-1..A5.9-190,
and tested by StateTransitions.java, but the second sentence is not!
----------------------------------------------------------------------
A5.5.8-1 JDO instances that have been removed from their persistence
manager and have not been modified are detached-clean. yes
org.apache.jdo.tck.lifecycle.StateTransitions new for JDO 2
Ambiguous if taken literally, "removed from their PM" doesn't neccessarily
imply "detached" but can also mean "transient".
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.8-2 Detached-clean instances transition to detached-dirty if a
loaded field is modified. yes
org.apache.jdo.tck.lifecycle.StateTransitions new for JDO 2
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.8-3 Attempts to change their state via any of the persistence
manager methods (e.g. makePersistent, deletePersistent, etc.) throw
JDOUserException. yes
org.apache.jdo.tck.lifecycle.StateTransitions new for JDO 2
Unclear from the assertion text what "their state" means: Detached-clean,
Detached-dirty, or both ?
Partially incorrect, the spec's state transition table shows "unchanged"
for both deletePersistent and makePersistent, but "error" for
makeTransactional etc.
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.5.9-1 the instance is detached in the persistent-dirty state while
the PersistenceManager flag DetachDirty is true; yes
org.apache.jdo.tck.lifecycle.StateTransitions new for JDO 2
Unclear language: an instance is in a certain state while a flag is being
true ? Does the instance's state change when the flag's value changes?
Not sure what it means, I don't think it's a DUPLICATE A5.9-1..A5.9-190
and covered by StateTransitions.java.
----------------------------------------------------------------------
A5.5.9-2 a field of the detached instance is explicitly modified by the
application. Dirty-detached instances do not change their life cycle state.
yes org.apache.jdo.tck.lifecycle.StateTransitions new
for JDO 2
Unclear language. But yes, writes on detached-dirty instances are
DUPLICATE A5.9-1..A5.9-190, and tested by StateTransitions.java.
----------------------------------------------------------------------
A5.6-1, A5.6-2, A5.6-3, A5.6-4, A5.6-15 Dirty-detached instances do not change
their life cycle state. Optional 3 no A5.6-1:
unimpl_tests/com/sun/jdotck/lifecycle/NoSupportOfPersistentNontransactional.java
RI implements this optional state. Cannot verify if a test would work.
Unclear language. If the assertion means that dirty-detached instances
"never ever" change their state, it's untestable; if it means that they
don't change their state under the JDO lifecycle events (=operations),
it's DUPLICATE A5.9-1..A5.9-190 and tested by StateTransitions.java.
----------------------------------------------------------------------
A5.6-5 deletePersistent, etc.) throw JDOUserException. Optional 3
no unimpl_tests/com/sun/jdotck/lifecycle/NavigationOutsideTransaction.java
Easy to test
Sorry, I don't know what this assetion means.
----------------------------------------------------------------------
A5.6-7 Persistent-Nontransactional (Optional) state:With NontransactionalRead
set to true: A5.6-7 [ When a managed, non-key field of a hollow instance is
read outside a transaction, the instance transitions to
persistent-nontransactional.] Optional yes
lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.6-8 Persistent-Nontransactional (Optional) state:With NontransactionalRead
set to true: A5.6-8 [ If a persistent-clean instance is the parameter of
makeNontransactional, the instance transitions to persistent-nontransactional.]
Optional yes lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.6-9 Persistent-Nontransactional (Optional) state: With
NontransactionalWrite set to true: A5.6-9 [ Modification of
persistent-nontransactional instances is permitted outside a transaction. The
changes do not participate in any subsequent transaction.] Optional
yes
lifecycle/nontransactional/ModificationOfNontransactionalInstanceOutsideTransaction.java
The first sentence (state-transition) is a DUPLICATE A5.9-1..A5.9-190,
and tested by StateTransitions.java, but the second sentence is not.
----------------------------------------------------------------------
A5.6-10 Persistent-Nontransactional (Optional) state: With RetainValues
set to true: At commit, A5.6-10 [ persistent-clean], A5.6-11 [
persistent-new], and A5.6-12 [persistent-dirty] instances transition to
persistent-nontransactional. Optional yes
lifecycle/StateTransitions.java
A5.6-11 Persistent-Nontransactional (Optional) state: With RetainValues set to
true: At commit, A5.6-10 [ persistent-clean], A5.6-11 [ persistent-new], and
A5.6-12 [persistent-dirty] instances transition to persistent-nontransactional.
Optional yes lifecycle/StateTransitions.java
A5.6-12 Persistent-Nontransactional (Optional) state: With RetainValues set to
true: At commit, A5.6-10 [ persistent-clean], A5.6-11 [ persistent-new], and
A5.6-12 [persistent-dirty] instances transition to persistent-nontransactional.
Optional yes lifecycle/StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
Want to merge these assertions into one spreadsheet row? (as with others)
----------------------------------------------------------------------
A5.6-13 Persistent-Nontransactional (Optional) state: A5.6-13 [With
RetainValues set to true ... At rollback, persistent-clean instances transition
to persistent-nontransactional.] Optional yes
lifecycle/StateTransitions.java REMOVE THIS ASSERTION. DUPLICATE OF A5.6-20
----------------------------------------------------------------------
A5.6-14 Persistent-Nontransactional (Optional) state: A5.6-14 [With
RetainValues set to true ... At rollback, persistent-dirty instances transition
to persistent-nontransactional and the state of their fields as of the
beginning of the transaction is restored.] Optional yes
lifecycle/StateTransitions.java REMOVE THIS ASSERTION. DUPLICATE OF A5.6-21
----------------------------------------------------------------------
A5.6-16, A5.6-17, A5.6-18 Persistent-Nontransactional (Optional) state:
With RestoreValues set to true: If the JDO implementation does not support
persistent-nontransactional instances, at rollback A5.6-16
[persistent-deleted], A5.6-17 [persistent-clean] and A5.6-18 [persistent-dirty]
instances transition to hollow. Optional yes
lifecycle/StateTransitions.java
Don't think the case
persistent-nontransactional = not supported
is DUPLICATE A5.9-1..A5.9-190. It appears it's NOT tested by
StateTransitions.java, which assumes support for
persistent-nontransactional.
----------------------------------------------------------------------
A5.6-19, A5.6-20, A5.6-21 Persistent-Nontransactional (Optional) state:
With RestoreValues set to true: If the JDO implementation supports
persistent-nontransactional instances, at rollback A5.6-19
[persistent-deleted], A5.6-20 [persistent-clean] and A5.6-21 [persistent-dirty]
instances transition to persistent-nontransactional. Optional
yes lifecycle/StateTransitions.java
Slightly misleading language: the state actually remains unchanged.
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
----------------------------------------------------------------------
A5.6.1-4 Persistent-Nontransactional (Optional) state: As long as a
transaction is not in progress: ifNontransactionalRead is true, A5.6.1-4 [
persistent field values might be retrieved from the datastore by the
PersistenceManager]; ifNontransactionalWrite is true, the application might
make changes to the persistent field values in the instance, and A5.6.1-3 [
There is no state change associated with either of the above operations.]
Optional yes lifecycle/StateTransitions.java Sufficient
with test in StateTransitions.java
A5.6.1-3 Persistent-Nontransactional (Optional) state: As long as a
transaction is not in progress: ifNontransactionalRead is true, A5.6.1-4 [
persistent field values might be retrieved from the datastore by the
PersistenceManager]; ifNontransactionalWrite is true, the application might
make changes to the persistent field values in the instance, and A5.6.1-3 [
There is no state change associated with either of the above operations.]
Optional yes lifecycle/StateTransitions.java Sufficient
with test in StateTransitions.java
Should be marked as DUPLICATE A5.9-1..A5.9-190, so I'd remove (redundant)
entries "yes" and "lifecycle/StateTransitions.java".
Want to merge these assertions into one spreadsheet row? (as with others)
----------------------------------------------------------------------
A5.6.1-5 Persistent-Nontransactional (Optional) state: A5.6.1-5 [ A
persistent-nontransactional instance transitions to persistent-clean if it is
the parameter of a makeTransactional method executed when a transaction is in
progress. The state of the instance in memory is discarded (cleared) and the
state is loaded from the datastore.] Optional yes
lifecycle/StateTransitions.java Sufficient with test in StateTransitions.java
Only the first sentence (state-transition) is a DUPLICATE A5.9-1..A5.9-190,
and tested by StateTransitions.java, but the second sentence is not.
----------------------------------------------------------------------
A5.6.1-6 Persistent-Nontransactional (Optional) state: A5.6.1-6 [
Apersistent-nontransactional instance transitions to persistent-clean if any
managed field is accessed when a datastore transaction is in progress. The
state of the instance in memory is discarded and the state is loaded from the
datastore.] Optional yes
lifecycle/StateTransitions.java Sufficient with test in StateTransitions.java
Only the first sentence (state-transition) is a DUPLICATE A5.9-1..A5.9-190,
and tested by StateTransitions.java, but the second sentence is not.
----------------------------------------------------------------------
A5.6.1-7 Persistent-Nontransactional (Optional) state: A5.6.1-7 [ A
persistent-nontransactional instance transitions to persistent-dirty if any
managed field is written when a transaction is in progress. The state of the
instance in memory is saved for use during rollback, and the state is loaded
from the datastore. Then the change is applied.] Optional
yes lifecycle/StateTransitions.java Not checking that state is saved for
rollback
Correct, only the first sentence (state-transition) is a
DUPLICATE A5.9-1..A5.9-190, and tested by StateTransitions.java,
but the second sentence is not.
----------------------------------------------------------------------
A5.6.1-8 Persistent-Nontransactional (Optional) state: A5.6.1-8 [ A
persistent-nontransactional instance transitions to persistent-deleted if it is
the parameter of deletePersistent. The state of the instance in memory is saved
for use during rollback.] Optional yes
lifecycle/StateTransitions.java Sufficient with test in StateTransitions.java
Only the first sentence (state-transition) is a DUPLICATE A5.9-1..A5.9-190,
and tested by StateTransitions.java, but the second sentence is not!
----------------------------------------------------------------------