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

theigl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git


The following commit(s) were added to refs/heads/master by this push:
     new 0fdde8d77a WICKET-7046 Avoid allocating `StringResponse` when no 
response filters are active (#578)
0fdde8d77a is described below

commit 0fdde8d77a7e67144cb1ad1b5ec8934ff2f16b47
Author: Thomas Heigl <[email protected]>
AuthorDate: Wed Apr 19 11:50:11 2023 +0200

    WICKET-7046 Avoid allocating `StringResponse` when no response filters are 
active (#578)
---
 .../org/apache/wicket/ajax/AjaxRequestHandler.java | 35 ++++++++++++----------
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java 
b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java
index fd54daa9dc..5e52cfa678 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java
@@ -270,10 +270,20 @@ public class AjaxRequestHandler extends 
AbstractPartialPageRequestHandler implem
                // Make sure it is not cached by a client
                response.disableCaching();
 
-               final StringResponse bodyResponse = new StringResponse();
-               update.writeTo(bodyResponse, encoding);
-               CharSequence filteredResponse = 
invokeResponseFilters(bodyResponse);
-               response.write(filteredResponse);
+               final List<IResponseFilter> filters = Application.get()
+                       .getRequestCycleSettings()
+                       .getResponseFilters();
+               if (filters == null || filters.isEmpty())
+               {
+                       update.writeTo(response, encoding);
+               }
+               else
+               {
+                       final StringResponse bodyResponse = new 
StringResponse();
+                       update.writeTo(bodyResponse, encoding);
+                       CharSequence filteredResponse = 
invokeResponseFilters(bodyResponse, filters);
+                       response.write(filteredResponse);
+               }
        }
 
        private boolean shouldRedirectToPage(IRequestCycle requestCycle)
@@ -299,23 +309,18 @@ public class AjaxRequestHandler extends 
AbstractPartialPageRequestHandler implem
         * 
         * @param contentResponse
         *            the Ajax {@link Response} body
+        * @param responseFilters
+        *            the response filters
         * @return filtered response
         */
-       private AppendingStringBuffer invokeResponseFilters(final 
StringResponse contentResponse)
+       private CharSequence invokeResponseFilters(final StringResponse 
contentResponse,
+               final List<IResponseFilter> responseFilters)
        {
                AppendingStringBuffer responseBuffer = new 
AppendingStringBuffer(
                        contentResponse.getBuffer());
-
-               List<IResponseFilter> responseFilters = Application.get()
-                       .getRequestCycleSettings()
-                       .getResponseFilters();
-
-               if (responseFilters != null)
+               for (IResponseFilter filter : responseFilters)
                {
-                       for (IResponseFilter filter : responseFilters)
-                       {
-                               responseBuffer = filter.filter(responseBuffer);
-                       }
+                       responseBuffer = filter.filter(responseBuffer);
                }
                return responseBuffer;
        }

Reply via email to