Author: ppoddar
Date: Tue Dec 23 13:49:49 2008
New Revision: 729134

URL: http://svn.apache.org/viewvc?rev=729134&view=rev
Log:
Timeout multithreaded tests if they hang

Modified:
    
openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQueryMultiThreaded.java

Modified: 
openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQueryMultiThreaded.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQueryMultiThreaded.java?rev=729134&r1=729133&r2=729134&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQueryMultiThreaded.java
 (original)
+++ 
openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQueryMultiThreaded.java
 Tue Dec 23 13:49:49 2008
@@ -32,10 +32,13 @@
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
 import javax.persistence.EntityManager;
 import javax.persistence.Query;
 
+import com.sun.org.apache.bcel.internal.generic.GETSTATIC;
+
 /**
  * Tests when multiple user threads enter the same EntityManager and executes 
  * query. 
@@ -303,16 +306,21 @@
                try {
                        for (Future f : futures)
                                try {
-                                       f.get();
+                                       f.get(60, TimeUnit.SECONDS);
+                               } catch (TimeoutException te) {
+                                   fail("Failed " + te + "\r\n" + 
getStackDump(te));
                                } catch (ExecutionException e) {
-                                       Throwable t = e.getCause();
-                                       StringWriter writer = new 
StringWriter();
-                                       t.printStackTrace(new 
PrintWriter(writer));
-                                       fail("Failed " + writer.toString());
+                                       fail("Failed " + "\r\n" + 
getStackDump(e.getCause()));
                                }
                } catch (InterruptedException e) {
 
                }
        }
+       
+       String getStackDump(Throwable t) {
+        StringWriter writer = new StringWriter();
+        t.printStackTrace(new PrintWriter(writer));
+        return writer.toString();
+       }
 
 }


Reply via email to