This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch wicket-8.x
in repository https://gitbox.apache.org/repos/asf/wicket.git
The following commit(s) were added to refs/heads/wicket-8.x by this push:
new a14cdb6 [WICKET-6782] error in sendMessage(String) handled as expected
a14cdb6 is described below
commit a14cdb633b195bb17514bee5de603694c035d6eb
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Wed May 6 15:29:43 2020 +0700
[WICKET-6782] error in sendMessage(String) handled as expected
---
.../wicket/protocol/ws/api/AbstractWebSocketProcessor.java | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
index 551aac9..ddc41cb 100644
---
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
+++
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
@@ -139,7 +139,7 @@ public abstract class AbstractWebSocketProcessor implements
IWebSocketProcessor
this.webSocketSettings =
WebSocketSettings.Holder.get(application);
this.webRequest =
webSocketSettings.newWebSocketRequest(request, wicketFilter.getFilterPath());
-
+
this.connectionRegistry =
webSocketSettings.getConnectionRegistry();
this.connectionFilter = webSocketSettings.getConnectionFilter();
@@ -220,7 +220,7 @@ public abstract class AbstractWebSocketProcessor implements
IWebSocketProcessor
IKey key = getRegistryKey();
IWebSocketConnection connection =
connectionRegistry.getConnection(application, sessionId, key);
- if (connection != null && (connection.isOpen() || message
instanceof ClosedMessage))
+ if (connection != null && (connection.isOpen() ||
isSpecialMessage(message)))
{
Application oldApplication =
ThreadContext.getApplication();
Session oldSession = ThreadContext.getSession();
@@ -263,7 +263,7 @@ public abstract class AbstractWebSocketProcessor implements
IWebSocketProcessor
WebSocketPayload payload =
createEventPayload(message, requestHandler);
- if (!(message instanceof
ConnectedMessage || message instanceof ClosedMessage || message instanceof
AbortedMessage)) {
+ if (!(message instanceof
ConnectedMessage || isSpecialMessage(message))) {
requestCycle.scheduleRequestHandlerAfterCurrent(requestHandler);
}
@@ -300,6 +300,11 @@ public abstract class AbstractWebSocketProcessor
implements IWebSocketProcessor
}
}
+ private static boolean isSpecialMessage(IWebSocketMessage message)
+ {
+ return message instanceof ClosedMessage || message instanceof
ErrorMessage || message instanceof AbortedMessage;
+ }
+
private RequestCycle createRequestCycle(WebSocketRequestMapper
requestMapper, WebResponse webResponse)
{
RequestCycleContext context = new
RequestCycleContext(webRequest, webResponse,