You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by so...@apache.org on 2020/05/06 14:16:20 UTC

[wicket] branch wicket-8.x updated: [WICKET-6782] error in sendMessage(String) handled as expected

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 <so...@gmail.com>
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,