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

rjung pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
     new 87746e188d Switch from locally defined AccessLogElement to new 
parametrized CharElement.
87746e188d is described below

commit 87746e188d380eead3171288e6d5ad4adfab4510
Author: Rainer Jung <rainer.j...@kippdata.de>
AuthorDate: Thu Apr 27 10:11:29 2023 +0200

    Switch from locally defined AccessLogElement to new parametrized 
CharElement.
    
    It is more consistent with all other output
    and eases backports.
---
 .../apache/catalina/valves/JsonAccessLogValve.java | 34 ++++++++++++----------
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/java/org/apache/catalina/valves/JsonAccessLogValve.java 
b/java/org/apache/catalina/valves/JsonAccessLogValve.java
index c2564f9778..bd4fb91da4 100644
--- a/java/org/apache/catalina/valves/JsonAccessLogValve.java
+++ b/java/org/apache/catalina/valves/JsonAccessLogValve.java
@@ -93,15 +93,27 @@ public class JsonAccessLogValve extends AccessLogValve {
         PATTERNS = Collections.unmodifiableMap(pattern2AttributeName);
     }
 
+    /**
+     * write any char
+     */
+    protected static class CharElement implements AccessLogElement {
+        private final char ch;
+
+        public CharElement(char ch) {
+            this.ch = ch;
+        }
+
+        @Override
+        public void addElement(CharArrayWriter buf, Date date, Request 
request, Response response, long time) {
+            buf.write(ch);
+        }
+    }
+
     @Override
     protected AccessLogElement[] createLogElements() {
         List<AccessLogElement> logElements = new 
ArrayList<>(Arrays.asList(super.createLogElements()));
         ListIterator<AccessLogElement> lit = logElements.listIterator();
-        lit.add(new AccessLogElement() {
-            @Override
-            public void addElement(CharArrayWriter buf, Date date, Request 
request, Response response, long time) {
-                buf.write('{');
-            }});
+        lit.add(new CharElement('{'));
         while (lit.hasNext()) {
             AccessLogElement logElement = lit.next();
             // remove all other elements, like StringElements
@@ -109,20 +121,12 @@ public class JsonAccessLogValve extends AccessLogValve {
                 lit.remove();
                 continue;
             }
-            lit.add(new AccessLogElement() {
-                @Override
-                public void addElement(CharArrayWriter buf, Date date, Request 
request, Response response, long time) {
-                    buf.write(',');
-                }});
+            lit.add(new CharElement(','));
         }
         // remove last comma again
         lit.previous();
         lit.remove();
-        lit.add(new AccessLogElement() {
-            @Override
-            public void addElement(CharArrayWriter buf, Date date, Request 
request, Response response, long time) {
-                buf.write('}');
-            }});
+        lit.add(new CharElement('}'));
         return logElements.toArray(new AccessLogElement[logElements.size()]);
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to