You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by al...@apache.org on 2009/03/01 23:15:02 UTC

svn commit: r749135 - /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/lockmgr/LockManagerTestBase.java

Author: allee8285
Date: Sun Mar  1 22:15:02 2009
New Revision: 749135

URL: http://svn.apache.org/viewvc?rev=749135&view=rev
Log:
OPENJPA-891 - Fix problematic thread test case synchronization problem.

Modified:
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/lockmgr/LockManagerTestBase.java

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/lockmgr/LockManagerTestBase.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/lockmgr/LockManagerTestBase.java?rev=749135&r1=749134&r2=749135&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/lockmgr/LockManagerTestBase.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/lockmgr/LockManagerTestBase.java Sun Mar  1 22:15:02 2009
@@ -392,6 +392,13 @@
         }
     }
     
+    private void notifyParent() {
+        getLog().trace("notifyParent:");
+        synchronized(this) {
+            notify();
+        }
+    }
+    
     public void concurrentLockingTest(
         int id, 
         int expectedVersionIncrement,
@@ -486,7 +493,10 @@
             } else {
                 t2.start();
             }
-            Thread.sleep(500);
+            log.trace("wait on thread 1");
+            synchronized (this){
+                wait();
+            }
             if (thread2Run == ThreadToRunFirst.RunThread2) {
                 t1.start();
             } else {
@@ -710,7 +720,8 @@
                     log.trace(beforeWaitMethod + ": duration 1="
                         + (System.currentTimeMillis() - startTimeStamp));
                     log.trace(beforeWaitMethod + ": returns=" + e1);
-                    log.trace("wait()");
+                    notifyParent();
+                    log.trace("childWait()");
                     wait();
                     switch (beforeWaitMethod) {
                     case NoOp: