You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by th...@apache.org on 2023/04/19 09:50:16 UTC

[wicket] branch master updated: WICKET-7046 Avoid allocating `StringResponse` when no response filters are active (#578)

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 <th...@gmail.com>
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;
 	}