You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2018/12/18 16:27:54 UTC

[2/4] tomee git commit: Add debug information

Add debug information


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/18204086
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/18204086
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/18204086

Branch: refs/heads/master
Commit: 18204086c730d5504beccd76e501f4917ffa1a80
Parents: 9155773
Author: Jean-Louis Monteiro <je...@gmail.com>
Authored: Tue Dec 18 16:18:03 2018 +0100
Committer: Jean-Louis Monteiro <je...@gmail.com>
Committed: Tue Dec 18 16:18:03 2018 +0100

----------------------------------------------------------------------
 .../resource/AutoConnectionTrackerTest.java     | 43 ++++++++++++++++----
 1 file changed, 36 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/18204086/container/openejb-core/src/test/java/org/apache/openejb/resource/AutoConnectionTrackerTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/resource/AutoConnectionTrackerTest.java b/container/openejb-core/src/test/java/org/apache/openejb/resource/AutoConnectionTrackerTest.java
index 6fb9859..e8f9598 100644
--- a/container/openejb-core/src/test/java/org/apache/openejb/resource/AutoConnectionTrackerTest.java
+++ b/container/openejb-core/src/test/java/org/apache/openejb/resource/AutoConnectionTrackerTest.java
@@ -17,6 +17,7 @@
  */
 package org.apache.openejb.resource;
 
+import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
 import org.apache.geronimo.connector.outbound.AbstractConnectionManager;
 import org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor;
@@ -167,8 +168,8 @@ public class AutoConnectionTrackerTest extends TestCase {
 
             System.gc();
             cf.getConnection().close();
-            assertEquals(0, logCapture.find("Transaction complete, but connection still has handles associated").size());
-            assertEquals(0, logCapture.find("Detected abandoned connection").size());
+            assertLogs(logCapture, 0, "Transaction complete, but connection still has handles associated");
+            assertLogs(logCapture, 0, "Detected abandoned connection");
             assertTrue(getConnectionCount((FakeConnectionFactoryImpl) cf) > 0);
         }
         {
@@ -186,8 +187,8 @@ public class AutoConnectionTrackerTest extends TestCase {
 
             System.gc();
             cf.getConnection().close();
-            assertEquals(0, logCapture.find("Transaction complete, but connection still has handles associated").size());
-            assertEquals(0, logCapture.find("Detected abandoned connection").size());
+            assertLogs(logCapture, 0, "Transaction complete, but connection still has handles associated");
+            assertLogs(logCapture, 0, "Detected abandoned connection");
             assertTrue(getConnectionCount((FakeConnectionFactoryImpl) cf) > 0);
         }
         {
@@ -197,8 +198,8 @@ public class AutoConnectionTrackerTest extends TestCase {
 
             final AutoConnectionTracker tracker = getAutoConnectionTracker((FakeConnectionFactoryImpl) cf);
             tracker.setEnvironment(null, null);
-            assertEquals(1, logCapture.find("Transaction complete, but connection still has handles associated").size());
-            assertEquals(1, logCapture.find("Detected abandoned connection").size());
+            assertLogs(logCapture, 1, "Transaction complete, but connection still has handles associated");
+            assertLogs(logCapture, 1, "Detected abandoned connection");
         }
         {
             logCapture.clear();
@@ -207,10 +208,38 @@ public class AutoConnectionTrackerTest extends TestCase {
 
             final AutoConnectionTracker tracker = getAutoConnectionTracker((FakeConnectionFactoryImpl) cf);
             tracker.setEnvironment(null, null);
-            assertEquals(1, logCapture.find("Detected abandoned connection").size());
+            assertLogs(logCapture, 1, "Detected abandoned connection");
         }
     }
 
+    // this is a very quick and dirty hack for debugging purpose
+    private void assertLogs(final LogCaptureHandler logCapture, final int times, final String message) {
+        final int iteration = 5;
+        final int waitSeconds = 2;
+
+        AssertionFailedError failure = null;
+
+        for (int i = 0 ; i < iteration ; i++) {
+            try {
+                assertEquals(message, times, logCapture.find(message).size());
+                return;
+
+            } catch (final AssertionFailedError e) {
+                if (failure == null) { // keep the first issue
+                    failure = e;
+                }
+
+                try {
+                    Thread.sleep(waitSeconds * 1000);
+                } catch (final InterruptedException e1) {
+                    // no-op
+                }
+            }
+        }
+
+        throw failure;
+    }
+
     private AutoConnectionTracker getAutoConnectionTracker(final FakeConnectionFactoryImpl cf) throws Exception {
         final Field field = AbstractConnectionManager.class.getDeclaredField("interceptors");
         field.setAccessible(true);