This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch wicket-7.x
in repository https://gitbox.apache.org/repos/asf/wicket.git
The following commit(s) were added to refs/heads/wicket-7.x by this push:
new 7b80efe [WICKET-6782] error in sendMessage(String) handled as expected
7b80efe is described below
commit 7b80efe6468796a8d79197bdbec1647e73d8e022
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 | 9 +++++++--
1 file changed, 7 insertions(+), 2 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 36bafd9..5e591cc 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
@@ -218,7 +218,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();
@@ -261,7 +261,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);
}
@@ -298,6 +298,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,