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;
}