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,

Reply via email to