You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2008/08/21 19:58:36 UTC

svn commit: r687812 - /james/server/trunk/mailets-function/src/test/java/org/apache/james/transport/remotedeliverytester/AbstractRemoteDeliveryTest.java

Author: bago
Date: Thu Aug 21 10:58:36 2008
New Revision: 687812

URL: http://svn.apache.org/viewvc?rev=687812&view=rev
Log:
Add stack dump to all of the RemoteDeliveryTest tests. (JAMES-850)
Geronimo based james is failing on test2 so let's see the stack for this.

Modified:
    james/server/trunk/mailets-function/src/test/java/org/apache/james/transport/remotedeliverytester/AbstractRemoteDeliveryTest.java

Modified: james/server/trunk/mailets-function/src/test/java/org/apache/james/transport/remotedeliverytester/AbstractRemoteDeliveryTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mailets-function/src/test/java/org/apache/james/transport/remotedeliverytester/AbstractRemoteDeliveryTest.java?rev=687812&r1=687811&r2=687812&view=diff
==============================================================================
--- james/server/trunk/mailets-function/src/test/java/org/apache/james/transport/remotedeliverytester/AbstractRemoteDeliveryTest.java (original)
+++ james/server/trunk/mailets-function/src/test/java/org/apache/james/transport/remotedeliverytester/AbstractRemoteDeliveryTest.java Thu Aug 21 10:58:36 2008
@@ -250,10 +250,14 @@
             assertEquals(0, waitEmptySpool(5000));
             
             // checks
-            assertWhole(tester.getTestStatus(), 1, 1);
-            assertServer(tester.getTestStatus(), "smtp://mail.test.it:25", 1, 1);
-            assertEquals(1, tester.getProcMails().size());
-            assertProcMail(mails.get("to@test.it"), ProcMail.STATE_SENT, 1, 0, "smtp://mail.test.it:25");
+            try {
+                assertWhole(tester.getTestStatus(), 1, 1);
+                assertServer(tester.getTestStatus(), "smtp://mail.test.it:25", 1, 1);
+                assertEquals(1, tester.getProcMails().size());
+                assertProcMail(mails.get("to@test.it"), ProcMail.STATE_SENT, 1, 0, "smtp://mail.test.it:25");
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
         } finally {
             tester.destroy();
         }
@@ -284,11 +288,15 @@
             assertEquals(0, waitEmptySpool(5000));
             
             // checks
-            assertWhole(tester.getTestStatus(), 4, 3);
-            assertServer(tester.getTestStatus(), "smtp://mail.test.it:25", 4, 3);
-            assertEquals(2, tester.getProcMails().size());
-            assertProcMail(mails.get("to@test.it"), ProcMail.STATE_SENT, 2, 0, "smtp://mail.test.it:25");
-            assertProcMail(mails.get("other@test.it"), ProcMail.STATE_SENT, 2, 0, "smtp://mail.test.it:25");
+            try {
+                assertWhole(tester.getTestStatus(), 4, 3);
+                assertServer(tester.getTestStatus(), "smtp://mail.test.it:25", 4, 3);
+                assertEquals(2, tester.getProcMails().size());
+                assertProcMail(mails.get("to@test.it"), ProcMail.STATE_SENT, 2, 0, "smtp://mail.test.it:25");
+                assertProcMail(mails.get("other@test.it"), ProcMail.STATE_SENT, 2, 0, "smtp://mail.test.it:25");
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
         } finally {
             tester.destroy();
         }
@@ -311,11 +319,15 @@
             assertEquals(0, waitEmptySpool(5000));
             
             // Checks
-            assertWhole(tester.getTestStatus(), 4, 3);
-            assertServer(tester.getTestStatus(), servers[0][1], 4, 3);
-            assertEquals(2, tester.getProcMails().size());
-            assertProcMail(mails.get("to@test.it"), ProcMail.STATE_SENT, 2, 0, servers[0][1]);
-            assertProcMail(mails.get("other@test.it"), ProcMail.STATE_SENT, 2, 0, servers[0][1]);
+            try {
+                assertWhole(tester.getTestStatus(), 4, 3);
+                assertServer(tester.getTestStatus(), servers[0][1], 4, 3);
+                assertEquals(2, tester.getProcMails().size());
+                assertProcMail(mails.get("to@test.it"), ProcMail.STATE_SENT, 2, 0, servers[0][1]);
+                assertProcMail(mails.get("other@test.it"), ProcMail.STATE_SENT, 2, 0, servers[0][1]);
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
         } finally {
             tester.destroy();
         }
@@ -343,11 +355,16 @@
             assertEquals(0, waitEmptySpool(5000));
             
             // Checks
-            assertWhole(tester.getTestStatus(), 2, 1);
-            assertServer(tester.getTestStatus(), servers[0][1], 2, 1);
-            assertEquals(2, tester.getProcMails().size());
-            assertProcMail(mails.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
-            assertProcMail(mails.get("b@test.it"), ProcMail.STATE_SENT, 1, 0, servers[0][1]);
+            try {
+                assertWhole(tester.getTestStatus(), 2, 1);
+                assertServer(tester.getTestStatus(), servers[0][1], 2, 1);
+                assertEquals(2, tester.getProcMails().size());
+                assertProcMail(mails.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
+                assertProcMail(mails.get("b@test.it"), ProcMail.STATE_SENT, 1, 0, servers[0][1]);
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
+        
         } finally {
             tester.destroy();
         }
@@ -375,11 +392,15 @@
             assertEquals(0, waitEmptySpool(10000));
             
             // Checks
-            assertWhole(tester.getTestStatus(), 5, 4);
-            assertServer(tester.getTestStatus(), servers[0][1], 5, 4);
-            assertEquals(2, tester.getProcMails().size());
-            assertProcMail(mails.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 4, 1, servers[0][1]);
-            assertProcMail(mails.get("b@test.it"), ProcMail.STATE_SENT, 1, 0, servers[0][1]);
+            try {
+                assertWhole(tester.getTestStatus(), 5, 4);
+                assertServer(tester.getTestStatus(), servers[0][1], 5, 4);
+                assertEquals(2, tester.getProcMails().size());
+                assertProcMail(mails.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 4, 1, servers[0][1]);
+                assertProcMail(mails.get("b@test.it"), ProcMail.STATE_SENT, 1, 0, servers[0][1]);
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
         } finally {
             tester.destroy();
         }
@@ -414,31 +435,34 @@
                 assertProcMail(mails.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 4, 1, servers[0][1]);
                 assertProcMail(mails.get("b@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
             } catch (AssertionFailedError e) {
-                // TEMPORARILY add a dump stack on failure to 
-                // see if we have a deadlock (unlikely) or simply the
-                // notification is not working properly. (see JAMES-850)
-                
-                // Use reflection to invoke java 1.5 stack functions.
-                try {
-                    Method m = Thread.class.getMethod("getAllStackTraces", null);
-                    Map stackDump = (Map) m.invoke(null, null);
-                    Set threads = stackDump.keySet();
-                    for (Iterator i = threads.iterator(); i.hasNext(); ) {
-                        Thread th = (Thread) i.next();
-                        System.out.println("Thread "+th);
-                        StackTraceElement[] stack = (StackTraceElement[]) stackDump.get(th);
-                        for (int k = 0; k < stack.length; k++) {
-                            System.out.println("  - "+stack[k]);
-                        }
-                    }
-                } catch (Exception reflectException) {
-                }
-                throw e;
+                stackDump(e);
             }
         } finally {
             tester.destroy();
         }
     }
+    private void stackDump(AssertionFailedError e) throws AssertionFailedError {
+        // TEMPORARILY add a dump stack on failure to 
+        // see if we have a deadlock (unlikely) or simply the
+        // notification is not working properly. (see JAMES-850)
+        
+        // Use reflection to invoke java 1.5 stack functions.
+        try {
+            Method m = Thread.class.getMethod("getAllStackTraces", null);
+            Map stackDump = (Map) m.invoke(null, null);
+            Set threads = stackDump.keySet();
+            for (Iterator i = threads.iterator(); i.hasNext(); ) {
+                Thread th = (Thread) i.next();
+                System.out.println("Thread "+th);
+                StackTraceElement[] stack = (StackTraceElement[]) stackDump.get(th);
+                for (int k = 0; k < stack.length; k++) {
+                    System.out.println("  - "+stack[k]);
+                }
+            }
+        } catch (Exception reflectException) {
+        }
+        throw e;
+    }
 
     /**
      * Mixed
@@ -466,18 +490,22 @@
             assertEquals(0, waitEmptySpool(5000));
             
             // Checks
-            assertWhole(tester.getTestStatus(), 14, 10);
-            assertServer(tester.getTestStatus(), servers[0][1], 10, 8);
-            assertServer(tester.getTestStatus(), servers[1][1], 4, 2);
-            assertEquals(8, tester.getProcMails().size());
-            assertProcMail(mails1.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 4, 1, servers[0][1]);
-            assertProcMail(mails1.get("b@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
-            assertProcMail(mails2.get("b@test2.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[1][1]);
-            assertProcMail(mails2.get("c@test2.it"), ProcMail.STATE_SENT, 1, 0, servers[1][1]);
-            assertProcMail(mails3.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 4, 1, servers[0][1]);
-            assertProcMail(mails3.get("b@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
-            assertProcMail(mails4.get("b@test2.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[1][1]);
-            assertProcMail(mails4.get("c@test2.it"), ProcMail.STATE_SENT, 1, 0, servers[1][1]);
+            try {
+                assertWhole(tester.getTestStatus(), 14, 10);
+                assertServer(tester.getTestStatus(), servers[0][1], 10, 8);
+                assertServer(tester.getTestStatus(), servers[1][1], 4, 2);
+                assertEquals(8, tester.getProcMails().size());
+                assertProcMail(mails1.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 4, 1, servers[0][1]);
+                assertProcMail(mails1.get("b@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
+                assertProcMail(mails2.get("b@test2.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[1][1]);
+                assertProcMail(mails2.get("c@test2.it"), ProcMail.STATE_SENT, 1, 0, servers[1][1]);
+                assertProcMail(mails3.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 4, 1, servers[0][1]);
+                assertProcMail(mails3.get("b@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
+                assertProcMail(mails4.get("b@test2.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[1][1]);
+                assertProcMail(mails4.get("c@test2.it"), ProcMail.STATE_SENT, 1, 0, servers[1][1]);
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
         } finally {
             tester.destroy();
         }
@@ -506,11 +534,15 @@
             assertEquals(0, waitEmptySpool(0));
             
             // Checks
-            assertWhole(tester.getTestStatus(), 2, 1);
-            assertServer(tester.getTestStatus(), servers[0][1], 2, 1);
-            assertEquals(2, tester.getProcMails().size());
-            assertProcMail(mails1.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
-            assertProcMail(mails1.get("b@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
+            try {
+                assertWhole(tester.getTestStatus(), 2, 1);
+                assertServer(tester.getTestStatus(), servers[0][1], 2, 1);
+                assertEquals(2, tester.getProcMails().size());
+                assertProcMail(mails1.get("a@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
+                assertProcMail(mails1.get("b@test.it"), ProcMail.STATE_SENT_ERROR, 1, 1, servers[0][1]);
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
         } finally {
             tester.destroy();
         }
@@ -532,11 +564,15 @@
             assertEquals(0, waitEmptySpool(5000));
             
             // Controlli
-            assertWhole(tester.getTestStatus(), 0, 1);
-            assertServer(tester.getTestStatus(), servers[0][1], 0, 1);
-            assertEquals(2, tester.getProcMails().size());
-            assertProcMail(mails1.get("a@test.it"), ProcMail.STATE_IDLE, 0, 1, null);
-            assertProcMail(mails1.get("b@test.it"), ProcMail.STATE_IDLE, 0, 1, null);
+            try {
+                assertWhole(tester.getTestStatus(), 0, 1);
+                assertServer(tester.getTestStatus(), servers[0][1], 0, 1);
+                assertEquals(2, tester.getProcMails().size());
+                assertProcMail(mails1.get("a@test.it"), ProcMail.STATE_IDLE, 0, 1, null);
+                assertProcMail(mails1.get("b@test.it"), ProcMail.STATE_IDLE, 0, 1, null);
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
         } finally {
             tester.destroy();
         }
@@ -568,12 +604,16 @@
             assertEquals(0, waitEmptySpool(5000));
             
             // Checks
-            assertWhole(tester.getTestStatus(), -2, -2); // Almeno 2 connessioni deve averle fatte
-            assertServer(tester.getTestStatus(), servers[0][1], 1, 1);
-            assertServer(tester.getTestStatus(), servers[1][1], -1, -1);
-            assertEquals(2, tester.getProcMails().size());
-            assertProcMail(mails.get("a@a.it"), ProcMail.STATE_SENT, 1, 0, servers[0][1]);
-            assertProcMail(mails.get("b@b.it"), ProcMail.STATE_SENT, -1, 0, servers[1][2]);
+            try {
+                assertWhole(tester.getTestStatus(), -2, -2); // Almeno 2 connessioni deve averle fatte
+                assertServer(tester.getTestStatus(), servers[0][1], 1, 1);
+                assertServer(tester.getTestStatus(), servers[1][1], -1, -1);
+                assertEquals(2, tester.getProcMails().size());
+                assertProcMail(mails.get("a@a.it"), ProcMail.STATE_SENT, 1, 0, servers[0][1]);
+                assertProcMail(mails.get("b@b.it"), ProcMail.STATE_SENT, -1, 0, servers[1][2]);
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
         } finally {
             tester.destroy();
         }
@@ -602,13 +642,17 @@
             assertEquals(0, waitEmptySpool(5000));
             
             // Checks
-            assertWhole(tester.getTestStatus(), -2, -3); // Almeno 2 connessioni deve averle fatte
-            assertServer(tester.getTestStatus(), servers[0][1], 1, 1);
-            assertServer(tester.getTestStatus(), servers[1][1], 0, 1);
-            assertServer(tester.getTestStatus(), servers[1][2], 1, 1);
-            assertEquals(2, tester.getProcMails().size());
-            assertProcMail(mails.get("a@a.it"), ProcMail.STATE_SENT, 1, 0, servers[0][1]);
-            assertProcMail(mails.get("b@b.it"), ProcMail.STATE_SENT, 1, 0, servers[1][2]);
+            try {
+                assertWhole(tester.getTestStatus(), -2, -3); // Almeno 2 connessioni deve averle fatte
+                assertServer(tester.getTestStatus(), servers[0][1], 1, 1);
+                assertServer(tester.getTestStatus(), servers[1][1], 0, 1);
+                assertServer(tester.getTestStatus(), servers[1][2], 1, 1);
+                assertEquals(2, tester.getProcMails().size());
+                assertProcMail(mails.get("a@a.it"), ProcMail.STATE_SENT, 1, 0, servers[0][1]);
+                assertProcMail(mails.get("b@b.it"), ProcMail.STATE_SENT, 1, 0, servers[1][2]);
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
         } finally {
             tester.destroy();
         }
@@ -636,12 +680,16 @@
             assertEquals(0, waitEmptySpool(5000));
             
             // Checks
-            assertWhole(tester.getTestStatus(), 1, 2); 
-            assertServer(tester.getTestStatus(), servers[0][1], 0, 1);
-            assertServer(tester.getTestStatus(), servers[0][2], 1, 1);
-            assertEquals(1, tester.getProcMails().size());
-            //assertProcMail(mails.get("a@i.it"), ProcMail.STATE_SENT_ERROR, 1, 0, servers[0][1]);
-            assertProcMail(mails.get("b@i.it"), ProcMail.STATE_SENT, -1, 0, servers[0][2]);
+            try {
+                assertWhole(tester.getTestStatus(), 1, 2); 
+                assertServer(tester.getTestStatus(), servers[0][1], 0, 1);
+                assertServer(tester.getTestStatus(), servers[0][2], 1, 1);
+                assertEquals(1, tester.getProcMails().size());
+                //assertProcMail(mails.get("a@i.it"), ProcMail.STATE_SENT_ERROR, 1, 0, servers[0][1]);
+                assertProcMail(mails.get("b@i.it"), ProcMail.STATE_SENT, -1, 0, servers[0][2]);
+            } catch (AssertionFailedError e) {
+                stackDump(e);
+            }
         } finally {
             tester.destroy();
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org