You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2016/01/21 19:47:39 UTC
logging-log4j2 git commit: [LOG4J2-1260] TlsSyslogFrame calculates
message length incorrectly.
Repository: logging-log4j2
Updated Branches:
refs/heads/master 079b1c2ee -> 467a121c2
[LOG4J2-1260] TlsSyslogFrame calculates message length incorrectly.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/467a121c
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/467a121c
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/467a121c
Branch: refs/heads/master
Commit: 467a121c296d32827c875f9f41cdcbb7c003ad49
Parents: 079b1c2
Author: ggregory <gg...@apache.org>
Authored: Thu Jan 21 10:47:33 2016 -0800
Committer: ggregory <gg...@apache.org>
Committed: Thu Jan 21 10:47:33 2016 -0800
----------------------------------------------------------------------
.../log4j/core/appender/TlsSyslogFrame.java | 62 +++++++++++---------
.../log4j/core/appender/TlsSyslogFrameTest.java | 53 +++++------------
src/changes/changes.xml | 3 +
3 files changed, 53 insertions(+), 65 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/467a121c/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/TlsSyslogFrame.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/TlsSyslogFrame.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/TlsSyslogFrame.java
index a48876f..1b1a61a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/TlsSyslogFrame.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/TlsSyslogFrame.java
@@ -16,56 +16,62 @@
*/
package org.apache.logging.log4j.core.appender;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import org.apache.logging.log4j.util.Chars;
/**
- * Wrapper for messages that are formatted according to RFC 5425.
+ * Wraps messages that are formatted according to RFC 5425.
*
* @see <a href="https://tools.ietf.org/html/rfc5425">RFC 5425</a>
*/
public class TlsSyslogFrame {
- private String message;
- private int messageLengthInBytes;
+ private final String message;
+ private final int byteLength;
public TlsSyslogFrame(final String message) {
- setMessage(message);
+ this.message = message;
+ final byte[] messageBytes = message.getBytes(StandardCharsets.UTF_8);
+ byteLength = messageBytes.length;
}
public String getMessage() {
return this.message;
}
- public void setMessage(final String message) {
- this.message = message;
- setLengthInBytes();
- }
-
- private void setLengthInBytes() {
- messageLengthInBytes = message.length();
- }
-
- public byte[] getBytes() {
- final String frame = toString();
- return frame.getBytes(Charset.defaultCharset());
- }
-
@Override
public String toString() {
- final String length = Integer.toString(messageLengthInBytes);
- return length + Chars.SPACE + message;
+ return Integer.toString(byteLength) + Chars.SPACE + message;
}
- public boolean equals(final TlsSyslogFrame frame) {
- return isLengthEquals(frame) && isMessageEquals(frame);
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((message == null) ? 0 : message.hashCode());
+ return result;
}
- private boolean isLengthEquals(final TlsSyslogFrame frame) {
- return this.messageLengthInBytes == frame.messageLengthInBytes;
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (!(obj instanceof TlsSyslogFrame)) {
+ return false;
+ }
+ final TlsSyslogFrame other = (TlsSyslogFrame) obj;
+ if (message == null) {
+ if (other.message != null) {
+ return false;
+ }
+ } else if (!message.equals(other.message)) {
+ return false;
+ }
+ return true;
}
- private boolean isMessageEquals(final TlsSyslogFrame frame) {
- return this.message.equals(frame.message);
- }
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/467a121c/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/TlsSyslogFrameTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/TlsSyslogFrameTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/TlsSyslogFrameTest.java
index 1c44f6d..887ba99 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/TlsSyslogFrameTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/TlsSyslogFrameTest.java
@@ -16,57 +16,36 @@
*/
package org.apache.logging.log4j.core.appender;
-import java.util.Arrays;
+import java.nio.charset.StandardCharsets;
import org.apache.logging.log4j.util.Chars;
import org.junit.Assert;
import org.junit.Test;
public class TlsSyslogFrameTest {
- private static final String TESTMESSAGE = "The quick brown fox jumps over the lazy dog";
-
- @Test
- public void messageSetByConstructor() {
- final TlsSyslogFrame frame = new TlsSyslogFrame(TESTMESSAGE);
- final byte[] representation = frame.getBytes();
- final byte[] expected = getByteRepresentation(TESTMESSAGE);
- Assert.assertTrue(Arrays.equals(representation, expected));
- }
-
- @Test
- public void messageSetBySetter() {
- final TlsSyslogFrame frame = new TlsSyslogFrame("Some text");
- frame.setMessage(TESTMESSAGE);
- final byte[] representation = frame.getBytes();
- final byte[] expected = getByteRepresentation(TESTMESSAGE);
- Assert.assertTrue(Arrays.equals(representation, expected));
- }
-
- @Test
- public void checkGetBytes() {
- final TlsSyslogFrame frame = new TlsSyslogFrame(TESTMESSAGE);
- final byte[] representation = frame.getBytes();
- final byte[] expected = getByteRepresentation(TESTMESSAGE);
- Assert.assertTrue(Arrays.equals(representation, expected));
- }
-
- private byte[] getByteRepresentation(final String message) {
- final String frame = message.length() + Character.toString(Chars.SPACE) + message;
- final byte[] representation = frame.getBytes();
- return representation;
- }
+ private static final String TEST_MESSAGE = "The quick brown fox jumps over the lazy dog";
@Test
public void equals() {
- final TlsSyslogFrame first = new TlsSyslogFrame("A message");
- final TlsSyslogFrame second = new TlsSyslogFrame("A message");
- Assert.assertTrue(first.equals(second));
+ final TlsSyslogFrame first = new TlsSyslogFrame(TEST_MESSAGE);
+ final TlsSyslogFrame second = new TlsSyslogFrame(TEST_MESSAGE);
+ Assert.assertEquals(first, second);
+ Assert.assertEquals(first.hashCode(), second.hashCode());
}
@Test
public void notEquals() {
final TlsSyslogFrame first = new TlsSyslogFrame("A message");
final TlsSyslogFrame second = new TlsSyslogFrame("B message");
- Assert.assertFalse(first.equals(second));
+ Assert.assertNotEquals(first, second);
+ Assert.assertNotEquals(first.hashCode(), second.hashCode());
+ }
+
+ @Test
+ public void testToString() {
+ final TlsSyslogFrame frame = new TlsSyslogFrame(TEST_MESSAGE);
+ final int length = TEST_MESSAGE.getBytes(StandardCharsets.UTF_8).length;
+ final String expected = Integer.toString(length) + Chars.SPACE + TEST_MESSAGE;
+ Assert.assertEquals(expected, frame.toString());
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/467a121c/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 7650945..645bed9 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -44,6 +44,9 @@
<action issue="LOG4J2-1192" dev="ggregory" type="add" due-to="Jörg Bretschneider, Gary Gregory">
Dynamic Subject for SMTP Appender.
</action>
+ <action issue="LOG4J2-1260" dev="ggregory" type="fix" due-to="Blake Day, Gary Gregory">
+ TlsSyslogFrame calculates message length incorrectly.
+ </action>
<action issue="LOG4J2-1258" dev="ggregory" type="fix" due-to="Francis Lalonde">
Async DynamicThresholdFilter does not use the log event's context map.
</action>