[jbpm-commits] JBoss JBPM SVN: r2835 - jbpm3/branches/jbpm-3.3.0.GA/modules/core/src/test/java/org/jbpm/mail.

do-not-reply at jboss.org do-not-reply at jboss.org
Sun Nov 9 11:04:28 EST 2008


Author: thomas.diesler at jboss.com
Date: 2008-11-09 11:04:28 -0500 (Sun, 09 Nov 2008)
New Revision: 2835

Modified:
   jbpm3/branches/jbpm-3.3.0.GA/modules/core/src/test/java/org/jbpm/mail/MailTest.java
Log:
Prevent NPE in mail server.stop()

Modified: jbpm3/branches/jbpm-3.3.0.GA/modules/core/src/test/java/org/jbpm/mail/MailTest.java
===================================================================
--- jbpm3/branches/jbpm-3.3.0.GA/modules/core/src/test/java/org/jbpm/mail/MailTest.java	2008-11-09 15:08:15 UTC (rev 2834)
+++ jbpm3/branches/jbpm-3.3.0.GA/modules/core/src/test/java/org/jbpm/mail/MailTest.java	2008-11-09 16:04:28 UTC (rev 2835)
@@ -3,6 +3,8 @@
 import java.util.Arrays;
 import java.util.Iterator;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.jbpm.AbstractJbpmTestCase;
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
@@ -14,15 +16,21 @@
 import com.dumbster.smtp.SimpleSmtpServer;
 import com.dumbster.smtp.SmtpMessage;
 
-public class MailTest extends AbstractJbpmTestCase {
-  
-  public static class TestAddressResolver implements AddressResolver {
+public class MailTest extends AbstractJbpmTestCase
+{
+  private static Log log = LogFactory.getLog(MailTest.class);
+
+  public static class TestAddressResolver implements AddressResolver
+  {
     private static final long serialVersionUID = 1L;
-    public Object resolveAddress(String actorId) {
-      if ("ghost".equals(actorId)) {
+
+    public Object resolveAddress(String actorId)
+    {
+      if ("ghost".equals(actorId))
+      {
         return null;
       }
-      return actorId+"@example.domain";
+      return actorId + "@example.domain";
     }
   }
 
@@ -44,23 +52,31 @@
     jbpmContext = jbpmConfiguration.createJbpmContext();
   }
 
-  static SimpleSmtpServer startSmtpServer(int port) {
-    /* SimpleSmtpServer.start(int) blocks the calling thread until the server socket is created.
-     * If the socket is created too quickly (seems to happen on Linux and Mac) then the 
-     * notification is sent too early and the calling thread blocks forever. */
+  static SimpleSmtpServer startSmtpServer(int port)
+  {
+    /*
+     * SimpleSmtpServer.start(int) blocks the calling thread until the server socket is created. If the socket is
+     * created too quickly (seems to happen on Linux and Mac) then the notification is sent too early and the calling
+     * thread blocks forever.
+     */
     // return SimpleSmtpServer.start(port);
-
-    /* The code below corresponds to SimpleSmtpServer.start(int) except that the
-     * thread start has been moved inside of the synchronized block. */    
+    /*
+     * The code below corresponds to SimpleSmtpServer.start(int) except that the thread start has been moved inside of
+     * the synchronized block.
+     */
     SimpleSmtpServer server = new SimpleSmtpServer(port);
     Thread serverThread = new Thread(server);
 
     // Block until the server socket is created
-    synchronized (server) {
+    synchronized (server)
+    {
       serverThread.start();
-      try {
+      try
+      {
         server.wait(10 * 1000);
-      } catch (InterruptedException e) {
+      }
+      catch (InterruptedException e)
+      {
         // Ignore don't care.
       }
     }
@@ -70,59 +86,71 @@
   protected void tearDown() throws Exception
   {
     jbpmContext.close();
-    server.stop();
+    try
+    {
+      server.stop();
+    }
+    catch (RuntimeException rte)
+    {
+      // This is an intermittent issue that we can safely ignore
+      log.error("Cannot stop server: " + rte);
+    }
     super.tearDown();
   }
 
-  public void testWithoutAddressResolving() {
+  public void testWithoutAddressResolving()
+  {
     String to = "sample.shipper at example.domain";
     String subject = "latest news";
     String text = "roy is assurancetourix";
-    
+
     Mail mail = new Mail(null, null, to, subject, text);
     mail.send();
-    
+
     assertTrue(server.getReceivedEmailSize() == 1);
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("latest news", email.getHeaderValue("Subject"));
     assertEquals("roy is assurancetourix", email.getBody());
     assertEquals("sample.shipper at example.domain", email.getHeaderValue("To"));
   }
 
-  public void testMailWithAddressResolving() {
+  public void testMailWithAddressResolving()
+  {
     String actors = "manager";
     String subject = "latest news";
     String text = "roy is assurancetourix";
-    
+
     Mail mail = new Mail(null, actors, null, subject, text);
     mail.send();
-    
+
     assertTrue(server.getReceivedEmailSize() == 1);
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("latest news", email.getHeaderValue("Subject"));
     assertEquals("roy is assurancetourix", email.getBody());
     assertEquals("manager at example.domain", email.getHeaderValue("To"));
   }
-  
-  public void testMailWithBccAddress() {
+
+  public void testMailWithBccAddress()
+  {
     String bcc = "bcc at example.domain";
     String subject = "latest news";
     String text = "roy is assurancetourix";
-    
+
     Mail mail = new Mail(null, null, null, null, bcc, subject, text);
     mail.send();
-    
+
     assertEquals(1, server.getReceivedEmailSize());
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email1 = (SmtpMessage) emailIter.next();
+    SmtpMessage email1 = (SmtpMessage)emailIter.next();
     assertEquals("latest news", email1.getHeaderValue("Subject"));
     assertEquals("roy is assurancetourix", email1.getBody());
     assertNull(email1.getHeaderValue("To"));
   }  
   
-  public void testMailNodeAttributes() {
+  public void testMailNodeAttributes() 
+  {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
       "  <start-state>" +
@@ -136,16 +164,17 @@
     );
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
     processInstance.signal();
-    
+
     assertTrue(server.getReceivedEmailSize() == 1);
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("readmylips", email.getHeaderValue("Subject"));
     assertEquals("nomoretaxes", email.getBody());
     assertEquals("george at example.domain", email.getHeaderValue("To"));
   }
   
-  public void testMailNodeElements() {
+  public void testMailNodeElements() 
+  {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
       "  <start-state>" +
@@ -161,16 +190,17 @@
     );
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
     processInstance.signal();
-    
+
     assertTrue(server.getReceivedEmailSize() == 1);
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("readmylips", email.getHeaderValue("Subject"));
     assertEquals("nomoretaxes", email.getBody());
     assertEquals("george at example.domain", email.getHeaderValue("To"));
   }
 
-  public void testMailActionAttributes() {
+  public void testMailActionAttributes() 
+  {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
       "  <start-state>" +
@@ -183,16 +213,17 @@
     );
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
     processInstance.signal();
-    
+
     assertTrue(server.getReceivedEmailSize() == 1);
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("readmylips", email.getHeaderValue("Subject"));
     assertEquals("nomoretaxes", email.getBody());
     assertEquals("george at example.domain", email.getHeaderValue("To"));
   }
 
-  public void testMailActionElements() {
+  public void testMailActionElements() 
+  {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
       "  <start-state>" +
@@ -209,16 +240,17 @@
     );
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
     processInstance.signal();
-    
+
     assertTrue(server.getReceivedEmailSize() == 1);
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("readmylips", email.getHeaderValue("Subject"));
     assertEquals("nomoretaxes", email.getBody());
     assertEquals("george at example.domain", email.getHeaderValue("To"));
   }
 
-  public void testMultipleRecipients() {
+  public void testMultipleRecipients() 
+  {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
       "  <start-state>" +
@@ -231,16 +263,18 @@
     );
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
     processInstance.signal();
-    
+
     assertEquals(1, server.getReceivedEmailSize());
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("readmylips", email.getHeaderValue("Subject"));
     assertEquals("nomoretaxes", email.getBody());
-    assertEquals(Arrays.asList(new String[]{"george at example.domain", "barbara at example.domain", "suzy at example.domain"}), Arrays.asList(email.getHeaderValues("To")));
+    assertEquals(Arrays.asList(new String[] { "george at example.domain", "barbara at example.domain", "suzy at example.domain" }), Arrays.asList(email
+        .getHeaderValues("To")));
   }
 
-  public void testMailWithoutAddressResolving() {
+  public void testMailWithoutAddressResolving() 
+  {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
       "  <start-state>" +
@@ -253,24 +287,30 @@
     );
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
     processInstance.signal();
-    
+
     assertEquals(1, server.getReceivedEmailSize());
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
-    assertEquals(Arrays.asList(new String[]{"george at humpydumpy.gov", "spiderman at hollywood.ca.us"}), Arrays.asList(email.getHeaderValues("To")));
+    SmtpMessage email = (SmtpMessage)emailIter.next();
+    assertEquals(Arrays.asList(new String[] { "george at humpydumpy.gov", "spiderman at hollywood.ca.us" }), Arrays.asList(email.getHeaderValues("To")));
   }
-  
-  public static class User {
-	String email;
-	public User(String email) {
+
+  public static class User
+  {
+    String email;
+
+    public User(String email)
+    {
       this.email = email;
-	}
-	public String getEmail() {
-	  return email;
-	}
+    }
+
+    public String getEmail()
+    {
+      return email;
+    }
   }
 
-  public void testToVariableExpression() {
+  public void testToVariableExpression() 
+  {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
       "  <start-state>" +
@@ -283,18 +323,19 @@
     );
     
     User mrNobody = new User("hucklebuck at example.domain");
-    
+
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
     processInstance.getContextInstance().setVariable("user", mrNobody);
     processInstance.signal();
-    
+
     assertEquals(1, server.getReceivedEmailSize());
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("hucklebuck at example.domain", email.getHeaderValue("To"));
   }
 
-  public void testToSwimlaneExpression() {
+  public void testToSwimlaneExpression() 
+  {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
       "  <start-state>" +
@@ -312,14 +353,15 @@
     initiatorInstance.setActorId("huckelberry");
     processInstance.getTaskMgmtInstance().addSwimlaneInstance(initiatorInstance);
     processInstance.signal();
-    
+
     assertEquals(1, server.getReceivedEmailSize());
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("huckelberry at example.domain", email.getHeaderValue("To"));
   }
 
-  public void testSubjectExpression() {
+  public void testSubjectExpression() 
+  {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
       "  <start-state>" +
@@ -334,14 +376,15 @@
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
     processInstance.getContextInstance().setVariable("item", "cookies");
     processInstance.signal();
-    
+
     assertEquals(1, server.getReceivedEmailSize());
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("your cookies order", email.getHeaderValue("Subject"));
   }
 
-  public void testTextExpression() {
+  public void testTextExpression() 
+  {
     ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
       "<process-definition>" +
       "  <start-state>" +
@@ -356,10 +399,10 @@
     ProcessInstance processInstance = new ProcessInstance(processDefinition);
     processInstance.getContextInstance().setVariable("item", "cookies");
     processInstance.signal();
-    
+
     assertEquals(1, server.getReceivedEmailSize());
     Iterator emailIter = server.getReceivedEmail();
-    SmtpMessage email = (SmtpMessage) emailIter.next();
+    SmtpMessage email = (SmtpMessage)emailIter.next();
     assertEquals("your cookies order", email.getBody());
   }
 }




More information about the jbpm-commits mailing list