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

Reply via email to