JavaMailSenderImpl calls sendMessage with empty array instead of null
Issue: SPR-17540
This commit is contained in:
parent
516c01c438
commit
16e9b83d43
|
|
@ -24,6 +24,7 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import javax.activation.FileTypeMap;
|
import javax.activation.FileTypeMap;
|
||||||
|
import javax.mail.Address;
|
||||||
import javax.mail.AuthenticationFailedException;
|
import javax.mail.AuthenticationFailedException;
|
||||||
import javax.mail.MessagingException;
|
import javax.mail.MessagingException;
|
||||||
import javax.mail.NoSuchProviderException;
|
import javax.mail.NoSuchProviderException;
|
||||||
|
|
@ -459,7 +460,8 @@ public class JavaMailSenderImpl implements JavaMailSender {
|
||||||
// Preserve explicitly specified message id...
|
// Preserve explicitly specified message id...
|
||||||
mimeMessage.setHeader(HEADER_MESSAGE_ID, messageId);
|
mimeMessage.setHeader(HEADER_MESSAGE_ID, messageId);
|
||||||
}
|
}
|
||||||
transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());
|
Address[] addresses = mimeMessage.getAllRecipients();
|
||||||
|
transport.sendMessage(mimeMessage, (addresses != null ? addresses : new Address[0]));
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
Object original = (originalMessages != null ? originalMessages[i] : mimeMessage);
|
Object original = (originalMessages != null ? originalMessages[i] : mimeMessage);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2016 the original author or authors.
|
* Copyright 2002-2018 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -56,6 +56,7 @@ public class JavaMailSenderTests {
|
||||||
@Rule
|
@Rule
|
||||||
public final ExpectedException thrown = ExpectedException.none();
|
public final ExpectedException thrown = ExpectedException.none();
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void javaMailSenderWithSimpleMessage() throws MessagingException, IOException {
|
public void javaMailSenderWithSimpleMessage() throws MessagingException, IOException {
|
||||||
MockJavaMailSender sender = new MockJavaMailSender();
|
MockJavaMailSender sender = new MockJavaMailSender();
|
||||||
|
|
@ -68,8 +69,8 @@ public class JavaMailSenderTests {
|
||||||
simpleMessage.setFrom("me@mail.org");
|
simpleMessage.setFrom("me@mail.org");
|
||||||
simpleMessage.setReplyTo("reply@mail.org");
|
simpleMessage.setReplyTo("reply@mail.org");
|
||||||
simpleMessage.setTo("you@mail.org");
|
simpleMessage.setTo("you@mail.org");
|
||||||
simpleMessage.setCc(new String[] {"he@mail.org", "she@mail.org"});
|
simpleMessage.setCc("he@mail.org", "she@mail.org");
|
||||||
simpleMessage.setBcc(new String[] {"us@mail.org", "them@mail.org"});
|
simpleMessage.setBcc("us@mail.org", "them@mail.org");
|
||||||
Date sentDate = new GregorianCalendar(2004, 1, 1).getTime();
|
Date sentDate = new GregorianCalendar(2004, 1, 1).getTime();
|
||||||
simpleMessage.setSentDate(sentDate);
|
simpleMessage.setSentDate(sentDate);
|
||||||
simpleMessage.setSubject("my subject");
|
simpleMessage.setSubject("my subject");
|
||||||
|
|
@ -105,7 +106,8 @@ public class JavaMailSenderTests {
|
||||||
assertEquals("my text", sentMessage.getContent());
|
assertEquals("my text", sentMessage.getContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testJavaMailSenderWithSimpleMessages() throws MessagingException, IOException {
|
@Test
|
||||||
|
public void javaMailSenderWithSimpleMessages() throws MessagingException {
|
||||||
MockJavaMailSender sender = new MockJavaMailSender();
|
MockJavaMailSender sender = new MockJavaMailSender();
|
||||||
sender.setHost("host");
|
sender.setHost("host");
|
||||||
sender.setUsername("username");
|
sender.setUsername("username");
|
||||||
|
|
@ -133,7 +135,8 @@ public class JavaMailSenderTests {
|
||||||
assertEquals("she@mail.org", ((InternetAddress) tos2.get(0)).getAddress());
|
assertEquals("she@mail.org", ((InternetAddress) tos2.get(0)).getAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testJavaMailSenderWithMimeMessage() throws MessagingException {
|
@Test
|
||||||
|
public void javaMailSenderWithMimeMessage() throws MessagingException {
|
||||||
MockJavaMailSender sender = new MockJavaMailSender();
|
MockJavaMailSender sender = new MockJavaMailSender();
|
||||||
sender.setHost("host");
|
sender.setHost("host");
|
||||||
sender.setUsername("username");
|
sender.setUsername("username");
|
||||||
|
|
@ -394,7 +397,7 @@ public class JavaMailSenderTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void failedMailServerConnect() throws Exception {
|
public void failedMailServerConnect() {
|
||||||
MockJavaMailSender sender = new MockJavaMailSender();
|
MockJavaMailSender sender = new MockJavaMailSender();
|
||||||
sender.setHost(null);
|
sender.setHost(null);
|
||||||
sender.setUsername("username");
|
sender.setUsername("username");
|
||||||
|
|
@ -415,7 +418,7 @@ public class JavaMailSenderTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void failedMailServerClose() throws Exception {
|
public void failedMailServerClose() {
|
||||||
MockJavaMailSender sender = new MockJavaMailSender();
|
MockJavaMailSender sender = new MockJavaMailSender();
|
||||||
sender.setHost("");
|
sender.setHost("");
|
||||||
sender.setUsername("username");
|
sender.setUsername("username");
|
||||||
|
|
@ -434,7 +437,7 @@ public class JavaMailSenderTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void failedSimpleMessage() throws Exception {
|
public void failedSimpleMessage() throws MessagingException {
|
||||||
MockJavaMailSender sender = new MockJavaMailSender();
|
MockJavaMailSender sender = new MockJavaMailSender();
|
||||||
sender.setHost("host");
|
sender.setHost("host");
|
||||||
sender.setUsername("username");
|
sender.setUsername("username");
|
||||||
|
|
@ -466,7 +469,7 @@ public class JavaMailSenderTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void fFailedMimeMessage() throws Exception {
|
public void failedMimeMessage() throws MessagingException {
|
||||||
MockJavaMailSender sender = new MockJavaMailSender();
|
MockJavaMailSender sender = new MockJavaMailSender();
|
||||||
sender.setHost("host");
|
sender.setHost("host");
|
||||||
sender.setUsername("username");
|
sender.setUsername("username");
|
||||||
|
|
@ -498,14 +501,14 @@ public class JavaMailSenderTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConnection() throws Exception {
|
public void testConnection() throws MessagingException {
|
||||||
MockJavaMailSender sender = new MockJavaMailSender();
|
MockJavaMailSender sender = new MockJavaMailSender();
|
||||||
sender.setHost("host");
|
sender.setHost("host");
|
||||||
sender.testConnection();
|
sender.testConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConnectionWithFailure() throws Exception {
|
public void testConnectionWithFailure() throws MessagingException {
|
||||||
MockJavaMailSender sender = new MockJavaMailSender();
|
MockJavaMailSender sender = new MockJavaMailSender();
|
||||||
sender.setHost(null);
|
sender.setHost(null);
|
||||||
|
|
||||||
|
|
@ -592,7 +595,8 @@ public class JavaMailSenderTests {
|
||||||
if ("fail".equals(message.getSubject())) {
|
if ("fail".equals(message.getSubject())) {
|
||||||
throw new MessagingException("failed");
|
throw new MessagingException("failed");
|
||||||
}
|
}
|
||||||
if (!ObjectUtils.nullSafeEquals(addresses, message.getAllRecipients())) {
|
if (addresses == null || (message.getAllRecipients() == null ? addresses.length > 0 :
|
||||||
|
!ObjectUtils.nullSafeEquals(addresses, message.getAllRecipients()))) {
|
||||||
throw new MessagingException("addresses not correct");
|
throw new MessagingException("addresses not correct");
|
||||||
}
|
}
|
||||||
if (message.getSentDate() == null) {
|
if (message.getSentDate() == null) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue