This is an automated email from the ASF dual-hosted git repository.
papegaaij pushed a commit to branch wicket-6831
in repository https://gitbox.apache.org/repos/asf/wicket.git
The following commit(s) were added to refs/heads/wicket-6831 by this push:
new 78b7cf6 WICKET-6831: flush before detach in websocket, log detach
exceptions
78b7cf6 is described below
commit 78b7cf6612b167997f810bf89065f5755ae155a8
Author: Emond Papegaaij <[email protected]>
AuthorDate: Mon Sep 21 11:47:23 2020 +0200
WICKET-6831: flush before detach in websocket, log detach exceptions
---
.../apache/wicket/request/cycle/RequestCycle.java | 17 +------------
.../wicket/protocol/ws/AbstractUpgradeFilter.java | 29 ++++++++++++++++------
2 files changed, 22 insertions(+), 24 deletions(-)
diff --git
a/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
b/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
index 38b7f93..b9f9841 100644
---
a/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
+++
b/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
@@ -684,22 +684,7 @@ public class RequestCycle implements IRequestCycle,
IEventSink, IMetadataContext
*/
private void handleDetachException(RuntimeException exception)
{
- boolean isBufferedResponse = true;
- if (Application.exists())
- {
- isBufferedResponse =
Application.get().getRequestCycleSettings().getBufferResponse();
- }
-
- //if application is using a buffered response strategy,
- //then we display exception to user.
- if (isBufferedResponse)
- {
- throw exception;
- }
- else
- {
- log.error("Error detaching RequestCycle", exception);
- }
+ log.error("Error detaching RequestCycle", exception);
}
/**
diff --git
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/AbstractUpgradeFilter.java
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/AbstractUpgradeFilter.java
index 1ab39c9..4b596ab 100644
---
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/AbstractUpgradeFilter.java
+++
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/AbstractUpgradeFilter.java
@@ -58,7 +58,6 @@ public class AbstractUpgradeFilter extends WicketFilter
final FilterChain chain)
throws IOException, ServletException
{
-
// Assume we are able to handle the request
boolean res = true;
@@ -68,17 +67,31 @@ public class AbstractUpgradeFilter extends WicketFilter
{
res = true;
}
- else if (requestCycle.processRequestAndDetach() ||
httpServletResponse.isCommitted())
- {
- webResponse.flush();
- }
else
{
- if (chain != null)
+ boolean reqProcessed = false;
+ try
+ {
+ reqProcessed = requestCycle.processRequest() ||
httpServletResponse.isCommitted();
+ if (reqProcessed)
+ {
+ webResponse.flush();
+ }
+ }
+ finally
{
- chain.doFilter(httpServletRequest,
httpServletResponse);
+ requestCycle.detach();
+ }
+
+ if (!reqProcessed)
+ {
+ if (chain != null)
+ {
+ // invoke next filter from within
Wicket context
+ chain.doFilter(httpServletRequest,
httpServletResponse);
+ }
+ res = false;
}
- res = false;
}
return res;