You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2018/03/11 11:53:08 UTC

[openmeetings] branch master updated: [OPENMEETINGS-1836] file drop seems to be fixed

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 57f3873  [OPENMEETINGS-1836] file drop seems to be fixed
57f3873 is described below

commit 57f3873fb2326ef68fc9f9b041f1e9b2df2dbf1f
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sun Mar 11 18:49:45 2018 +0700

    [OPENMEETINGS-1836] file drop seems to be fixed
---
 .../openmeetings/core/util/WebSocketHelper.java    | 36 ++++++++++++++--------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
index 7e47050..1a4579c 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
@@ -46,11 +46,13 @@ import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.util.ws.IClusterWsMessage;
 import org.apache.wicket.Application;
+import org.apache.wicket.ThreadContext;
 import org.apache.wicket.protocol.ws.WebSocketSettings;
 import org.apache.wicket.protocol.ws.api.IWebSocketConnection;
 import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry;
 import org.apache.wicket.protocol.ws.api.registry.PageIdKey;
 import org.apache.wicket.protocol.ws.concurrent.Executor;
+import org.apache.wicket.request.cycle.RequestCycle;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -211,19 +213,24 @@ public class WebSocketHelper {
 		if (publish) {
 			publish(new WsMessageAll(m));
 		}
-		Application app = (Application)getApp();
-		WebSocketSettings settings = WebSocketSettings.Holder.get(app);
-		IWebSocketConnectionRegistry reg = settings.getConnectionRegistry();
-		Executor executor = settings.getWebSocketPushMessageExecutor();
-		for (IWebSocketConnection c : reg.getConnections(app)) {
-			executor.run(() -> {
-				try {
-					c.sendMessage(m);
-				} catch (IOException e) {
-					log.error("Error while sending message to ALL", e);
-				}
-			});
-		}
+		final RequestCycle requestCycle = ThreadContext.getRequestCycle();
+		new Thread(() -> {
+			Application app = (Application)getApp();
+			ThreadContext.setRequestCycle(requestCycle);
+			ThreadContext.setApplication(app);
+			WebSocketSettings settings = WebSocketSettings.Holder.get(app);
+			IWebSocketConnectionRegistry reg = settings.getConnectionRegistry();
+			Executor executor = settings.getWebSocketPushMessageExecutor();
+			for (IWebSocketConnection c : reg.getConnections(app)) {
+				executor.run(() -> {
+					try {
+						c.sendMessage(m);
+					} catch (IOException e) {
+						log.error("Error while sending message to ALL", e);
+					}
+				});
+			}
+		}).start();
 	}
 
 	protected static void publish(IClusterWsMessage m) {
@@ -250,8 +257,11 @@ public class WebSocketHelper {
 			, BiConsumer<IWebSocketConnection, Client> consumer
 			, Predicate<Client> check)
 	{
+		final RequestCycle requestCycle = ThreadContext.getRequestCycle();
 		new Thread(() -> {
 			Application app = (Application)getApp();
+			ThreadContext.setRequestCycle(requestCycle);
+			ThreadContext.setApplication(app);
 			WebSocketSettings settings = WebSocketSettings.Holder.get(app);
 			IWebSocketConnectionRegistry reg = settings.getConnectionRegistry();
 			Executor executor = settings.getWebSocketPushMessageExecutor();

-- 
To stop receiving notification emails like this one, please contact
solomax@apache.org.