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 2019/10/05 16:17:15 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2115] Activities are being cleaned up on Media flow stop

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 bba48c0  [OPENMEETINGS-2115] Activities are being cleaned up on Media flow stop
bba48c0 is described below

commit bba48c06df35dc3552d8c4f2c3a165793886c8b7
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sat Oct 5 23:17:02 2019 +0700

    [OPENMEETINGS-2115] Activities are being cleaned up on Media flow stop
---
 .../java/org/apache/openmeetings/core/remote/StreamProcessor.java  | 7 +++++++
 .../main/java/org/apache/openmeetings/db/entity/basic/Client.java  | 6 +++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
index 71f37d9..a9e10ec 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
@@ -492,8 +492,15 @@ public class StreamProcessor implements IStreamProcessor {
 		final String uid = stream.getUid();
 		Client c = cm.getBySid(stream.getSid());
 		if (c != null) {
+			StreamDesc sd = c.getStream(uid);
 			c.removeStream(uid);
+			if (StreamType.WEBCAM == sd.getType()) {
+				for (Activity a : sd.getActivities()) {
+					c.remove(a);
+				}
+			}
 			cm.update(c);
+			WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c, RoomMessage.Type.rightUpdated, c.getUid()));
 		}
 		streamByUid.remove(uid);
 	}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
index b0bdcb9..71fa97d 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
@@ -530,8 +530,8 @@ public class Client implements IDataProviderEntity, IWsClient {
 			return Client.this;
 		}
 
-		private JSONArray getActivities() {
-			return new JSONArray(new ArrayList<>(sactivities));
+		public List<Activity> getActivities() {
+			return List.copyOf(sactivities);
 		}
 
 		public JSONObject toJson() {
@@ -540,7 +540,7 @@ public class Client implements IDataProviderEntity, IWsClient {
 					.put("type", type.name())
 					.put("width", swidth)
 					.put("height", sheight)
-					.put("activities", getActivities())
+					.put("activities", new JSONArray(sactivities))
 					.put("cuid", uid));
 		}