You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/03/30 17:42:47 UTC

[1/2] logging-log4j2 git commit: LOG4J2-1271 added unit tests, fixed bug

Repository: logging-log4j2
Updated Branches:
  refs/heads/LOG4J2-1278-gc-free-logger d3b44f462 -> fed344667


LOG4J2-1271 added unit tests, fixed bug


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/bd34d17e
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/bd34d17e
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/bd34d17e

Branch: refs/heads/LOG4J2-1278-gc-free-logger
Commit: bd34d17e79d5ba40a5ea53fe53520f642a7aebf5
Parents: cf919cb
Author: rpopma <rp...@apache.org>
Authored: Thu Mar 31 00:41:38 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Thu Mar 31 00:41:38 2016 +0900

----------------------------------------------------------------------
 .../log4j/message/ParameterFormatter.java       |  1 +
 .../ReusableParameterizedMessageTest.java       | 65 ++++++++++++++++++++
 2 files changed, 66 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/bd34d17e/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
index 4e1f825..fa1a43a 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
@@ -113,6 +113,7 @@ final class ParameterFormatter {
             if (curChar == ESCAPE_CHAR) {
                 isEscaped = !isEscaped;
                 indices[0] = -1; // escaping means fast path is not available...
+                result++;
             } else if (curChar == DELIM_START) {
                 if (!isEscaped && messagePattern.charAt(i + 1) == DELIM_STOP) {
                     indices[result] = i;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/bd34d17e/log4j-api/src/test/java/org/apache/logging/log4j/message/ReusableParameterizedMessageTest.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/message/ReusableParameterizedMessageTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/message/ReusableParameterizedMessageTest.java
index 0dd9260..98bf2d0 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/message/ReusableParameterizedMessageTest.java
+++ b/log4j-api/src/test/java/org/apache/logging/log4j/message/ReusableParameterizedMessageTest.java
@@ -44,6 +44,71 @@ public class ReusableParameterizedMessageTest {
     }
 
     @Test
+    public void testFormat3StringArgs() {
+        final String testMsg = "Test message {}{} {}";
+        final String[] args = { "a", "b", "c" };
+        final String result = new ReusableParameterizedMessage().set(testMsg, args).getFormattedMessage();
+        assertEquals("Test message ab c", result);
+    }
+
+    @Test
+    public void testFormatNullArgs() {
+        final String testMsg = "Test message {} {} {} {} {} {}";
+        final String[] args = { "a", null, "c", null, null, null };
+        final String result = new ReusableParameterizedMessage().set(testMsg, args).getFormattedMessage();
+        assertEquals("Test message a null c null null null", result);
+    }
+
+    @Test
+    public void testFormatStringArgsIgnoresSuperfluousArgs() {
+        final String testMsg = "Test message {}{} {}";
+        final String[] args = { "a", "b", "c", "unnecessary", "superfluous" };
+        final String result = new ReusableParameterizedMessage().set(testMsg, args).getFormattedMessage();
+        assertEquals("Test message ab c", result);
+    }
+
+    @Test
+    public void testFormatStringArgsWithEscape() {
+        final String testMsg = "Test message \\{}{} {}";
+        final String[] args = { "a", "b", "c" };
+        final String result = new ReusableParameterizedMessage().set(testMsg, args).getFormattedMessage();
+        assertEquals("Test message {}a b", result);
+    }
+
+    @Test
+    public void testFormatStringArgsWithTrailingEscape() {
+        final String testMsg = "Test message {}{} {}\\";
+        final String[] args = { "a", "b", "c" };
+        final String result = new ReusableParameterizedMessage().set(testMsg, args).getFormattedMessage();
+        assertEquals("Test message ab c\\", result);
+    }
+
+    @Test
+    public void testFormatStringArgsWithTrailingText() {
+        final String testMsg = "Test message {}{} {}Text";
+        final String[] args = { "a", "b", "c" };
+        final String result = new ReusableParameterizedMessage().set(testMsg, args).getFormattedMessage();;
+        assertEquals("Test message ab cText", result);
+    }
+
+    @Test
+    public void testFormatStringArgsWithTrailingEscapedEscape() {
+        final String testMsg = "Test message {}{} {}\\\\";
+        final String[] args = { "a", "b", "c" };
+        final String result = new ReusableParameterizedMessage().set(testMsg, args).getFormattedMessage();
+        assertEquals("Test message ab c\\\\", result);
+    }
+
+    @Test
+    public void testFormatStringArgsWithEscapedEscape() {
+        final String testMsg = "Test message \\\\{}{} {}";
+        final String[] args = { "a", "b", "c" };
+        final String result = new ReusableParameterizedMessage().set(testMsg, args).getFormattedMessage();
+        assertEquals("Test message \\ab c", result);
+    }
+
+
+    @Test
     public void testNotSafeWithMutableParams() {
         final String testMsg = "Test message {}";
         final Mutable param = new Mutable().set("abc");


[2/2] logging-log4j2 git commit: Merge remote-tracking branch 'remotes/origin/master' into LOG4J2-1278-gc-free-logger

Posted by rp...@apache.org.
Merge remote-tracking branch 'remotes/origin/master' into LOG4J2-1278-gc-free-logger


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/fed34466
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/fed34466
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/fed34466

Branch: refs/heads/LOG4J2-1278-gc-free-logger
Commit: fed344667cce23fe1d8635cf0eee822b2a349d83
Parents: d3b44f4 bd34d17
Author: rpopma <rp...@apache.org>
Authored: Thu Mar 31 00:42:24 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Thu Mar 31 00:42:24 2016 +0900

----------------------------------------------------------------------
 .../log4j/message/ParameterFormatter.java       |  1 +
 .../ReusableParameterizedMessageTest.java       | 65 ++++++++++++++++++++
 2 files changed, 66 insertions(+)
----------------------------------------------------------------------