This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/release-2.x by this push:
new dff84c2 LOG4J2-3174 Fix handling of LogEvent-dependent subjects in
SmtpManager. (#589)
dff84c2 is described below
commit dff84c2868dfc7f4bf573962689c535565d89804
Author: romainmoreau <[email protected]>
AuthorDate: Tue Oct 19 22:52:51 2021 +0200
LOG4J2-3174 Fix handling of LogEvent-dependent subjects in SmtpManager.
(#589)
Co-authored-by: Romain Moreau <[email protected]>
---
.../org/apache/logging/log4j/core/net/SmtpManager.java | 17 ++++++++++++++++-
.../logging/log4j/core/appender/SmtpAppenderTest.java | 8 +++++---
src/changes/changes.xml | 3 +++
3 files changed, 24 insertions(+), 4 deletions(-)
diff --git
a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
index 07dbba9..af16c9a 100644
---
a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
+++
b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
@@ -184,7 +184,9 @@ public class SmtpManager extends AbstractManager {
final InternetHeaders headers = getHeaders(contentType, encoding);
final MimeMultipart mp = getMimeMultipart(encodedBytes, headers);
- sendMultipartMessage(message, mp);
+ final String subject = data.subject.toSerializable(appendEvent);
+
+ sendMultipartMessage(message, mp, subject);
} catch (final MessagingException | IOException | RuntimeException e) {
logError("Caught exception while sending e-mail notification.", e);
throw new LoggingException("Error occurred while sending email",
e);
@@ -269,6 +271,10 @@ public class SmtpManager extends AbstractManager {
return mp;
}
+ /**
+ * @deprecated Please use the {@link #sendMultipartMessage(MimeMessage,
MimeMultipart, String)} method instead.
+ */
+ @Deprecated
protected void sendMultipartMessage(final MimeMessage msg, final
MimeMultipart mp) throws MessagingException {
synchronized (msg) {
msg.setContent(mp);
@@ -277,6 +283,15 @@ public class SmtpManager extends AbstractManager {
}
}
+ protected void sendMultipartMessage(final MimeMessage msg, final
MimeMultipart mp, final String subject) throws MessagingException {
+ synchronized (msg) {
+ msg.setContent(mp);
+ msg.setSentDate(new Date());
+ msg.setSubject(subject);
+ Transport.send(msg);
+ }
+ }
+
/**
* Factory data.
*/
diff --git
a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SmtpAppenderTest.java
b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SmtpAppenderTest.java
index d595d16..2a4cf4c 100644
---
a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SmtpAppenderTest.java
+++
b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SmtpAppenderTest.java
@@ -120,7 +120,7 @@ public class SmtpAppenderTest {
.setBcc("[email protected]")
.setFrom("[email protected]")
.setReplyTo("[email protected]")
- .setSubject("Subject Pattern %X{" + subjectKey + "}")
+ .setSubject("Subject Pattern %X{" + subjectKey + "}
%maxLen{%m}{10}")
.setSmtpHost(HOST)
.setSmtpPort(smtpPort)
.setBufferSize(3)
@@ -153,8 +153,7 @@ public class SmtpAppenderTest {
// can't be tested with Dumpster 1.6
assertEquals("[email protected]", email.getHeaderValue("From"));
assertEquals("[email protected]", email.getHeaderValue("Reply-To"));
- final String headerValue = email.getHeaderValue("Subject");
- assertEquals(headerValue, "Subject Pattern " + subjectValue);
+ assertEquals("Subject Pattern " + subjectValue +" Error with",
email.getHeaderValue("Subject"));
final String body = email.getBody();
assertFalse(body.contains("Debug message #1"));
@@ -167,6 +166,9 @@ public class SmtpAppenderTest {
assertFalse(body.contains("Error message #2"));
final SmtpMessage email2 = messages.next();
+
+ assertEquals("Subject Pattern " + subjectValue +" Error mess",
email2.getHeaderValue("Subject"));
+
final String body2 = email2.getBody();
assertFalse(body2.contains("Debug message #4"));
assertFalse(body2.contains("Error with exception"));
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index ec9ac16..ae2b3db 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -178,6 +178,9 @@
<action issue="LOG4J2-3095" dev="ggregory" type="fix" due-to="Kenny
MacLeod, Gary Gregory">
Category.setLevel should accept null value.
</action>
+ <action issue="LOG4J2-3174" dev="vy" type="fix" due-to="romainmoreau">
+ Wrong subject on mail when it depends on the LogEvent
+ </action>
<!-- UPDATES -->
<action dev="ggregory" type="update">
- com.fasterxml.jackson.core:jackson-annotations .................
2.12.2 -> 2.12.4