This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-api.git


The following commit(s) were added to refs/heads/master by this push:
     new 8754cd2  SLING-11392 : Escape characters in request progress tracker
8754cd2 is described below

commit 8754cd20cb047498e1cf53fde1e5c0357232e6b9
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Mon Jun 13 14:34:22 2022 +0200

    SLING-11392 : Escape characters in request progress tracker
---
 .../api/request/builder/impl/RequestProgressTrackerImpl.java     | 8 ++++----
 .../api/request/builder/impl/RequestProgressTrackerImplTest.java | 9 +++++++++
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/api/request/builder/impl/RequestProgressTrackerImpl.java
 
b/src/main/java/org/apache/sling/api/request/builder/impl/RequestProgressTrackerImpl.java
index 99fadb8..0a664f7 100644
--- 
a/src/main/java/org/apache/sling/api/request/builder/impl/RequestProgressTrackerImpl.java
+++ 
b/src/main/java/org/apache/sling/api/request/builder/impl/RequestProgressTrackerImpl.java
@@ -170,7 +170,9 @@ public class RequestProgressTrackerImpl implements 
RequestProgressTracker {
         for (int i = PADDING_WIDTH - offsetStr.length(); i > 0; i--) {
             sb.append(' ');
         }
-        sb.append(offsetStr).append(' ').append(message).append('\n');
+        sb.append(offsetStr).append(' ')
+          .append(message.replace('\n', '_').replace('\r', '_'))
+          .append('\n');
         return sb.toString();
     }
 
@@ -179,12 +181,10 @@ public class RequestProgressTrackerImpl implements 
RequestProgressTracker {
         logTimer(REQUEST_PROCESSING_TIMER,
             "Dumping SlingRequestProgressTracker Entries");
 
-        final StringBuilder sb = new StringBuilder();
         final Iterator<String> messages = getMessages();
         while (messages.hasNext()) {
-            sb.append(messages.next());
+            writer.print(messages.next());
         }
-        writer.print(sb.toString());
     }
 
     @Override
diff --git 
a/src/test/java/org/apache/sling/api/request/builder/impl/RequestProgressTrackerImplTest.java
 
b/src/test/java/org/apache/sling/api/request/builder/impl/RequestProgressTrackerImplTest.java
index 3a4aeab..49e4c8a 100644
--- 
a/src/test/java/org/apache/sling/api/request/builder/impl/RequestProgressTrackerImplTest.java
+++ 
b/src/test/java/org/apache/sling/api/request/builder/impl/RequestProgressTrackerImplTest.java
@@ -129,6 +129,15 @@ public class RequestProgressTrackerImplTest {
         tracker.getMessages().remove();
     }
 
+    @Test
+    public void testMessageEscape() {
+        tracker.log("foo\n\rbar");
+        final StringWriter w = new StringWriter();
+        tracker.dump(new PrintWriter(w));
+        w.flush();
+        final String result = w.toString();
+        assertTrue(result.contains("LOG foo__bar"));
+    }
     private String substringAfter(String string, char ch) {
         final int pos = string.indexOf(ch);
         return string.substring(pos);

Reply via email to