Timing bug in TCK test case ThreadSafe
--------------------------------------
Key: JDO-238
URL: http://issues.apache.org/jira/browse/JDO-238
Project: JDO
Type: Bug
Components: tck11, tck20
Reporter: Michael Bouschen
Assigned to: Martin Zaun
Priority: Minor
The TCK test ThreadSafe runs multiple threads, where each thread tries to
persist the same pc instance using its own PM. The expected behavior is that
one thread succeeds persisting the pc instance and stores it at transaction
commit. All other threads should result in a JDOException because the pc
instance is already bound to a different PM. All threads close the PM at the
end.
Now, it might happen that the succeeding thread closes the PM before a parallel
thread tries to persist the pc instance. The behavior of pm.makePersistence for
a pc instance bound to a closed pm is not specified, so it does not necessarily
result in an exception.
The test case should be changed such that the succeeding thread waits for all
the other threads before closing the PM. Please note, the solution must be
robust enough to avoid a deadlock situation even if an erroneous JDO
implementation would allow multiple threads to succeed persisting the pc
instance.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira