[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