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 2017/10/04 10:22:22 UTC

openmeetings git commit: [OPENMEETINGS-1715] room recording on exit is fixed

Repository: openmeetings
Updated Branches:
  refs/heads/master b3bd1a68d -> 58cf1917e


[OPENMEETINGS-1715] room recording on exit is fixed


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/58cf1917
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/58cf1917
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/58cf1917

Branch: refs/heads/master
Commit: 58cf1917ed21b17fc05d8692efd754c97fe277e4
Parents: b3bd1a6
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Wed Oct 4 17:22:15 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Wed Oct 4 17:22:15 2017 +0700

----------------------------------------------------------------------
 .../core/remote/RecordingService.java           | 25 ++++++++++----------
 .../core/remote/ScopeApplicationAdapter.java    |  7 +++++-
 2 files changed, 19 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/58cf1917/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
index 41fc468..ba43284 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
@@ -168,8 +168,12 @@ public class RecordingService implements IPendingServiceCallback {
 
 	public void stopRecording(IScope scope, IClient client) {
 		try {
-			//FIXME TODO The client who started the recording might already left the room !!!!
-			log.debug("stopRecordAndSave {}, {}", client.getLogin(), client.getRemoteAddress());
+			Long recordingId = IClientUtil.getRecordingId(scope);
+			log.debug("stopRecordAndSave {}, {}, ID: {}", client.getLogin(), client.getRemoteAddress(), recordingId);
+			if (recordingId == null) {
+				log.error("Unable to find recordingId on recording stop");
+				return;
+			}
 			IApplication iapp = getApp();
 			Client recClient = null;
 			for (Client c : iapp.getOmRoomClients(client.getRoomId())) {
@@ -179,11 +183,14 @@ public class RecordingService implements IPendingServiceCallback {
 				}
 			}
 			if (recClient == null) {
-				log.error("Unable to find recordingId on recording stop");
-				return;
+				log.warn("Unable to find Recording client");
+			} else {
+				WebSocketHelper.sendRoom(new TextRoomMessage(recClient.getRoomId(), recClient.getUserId(), RoomMessage.Type.recordingStoped, recClient.getSid()));
+				// Store to database
+				recClient.setRecordingId(null);
+				recClient.setRecordingStarted(false);
+				sessionManager.update(recClient);
 			}
-			WebSocketHelper.sendRoom(new TextRoomMessage(recClient.getRoomId(), recClient.getUserId(), RoomMessage.Type.recordingStoped, recClient.getSid()));
-
 			// get all stream and stop recording them
 			for (IConnection conn : scope.getClientConnections()) {
 				if (conn != null && conn instanceof IServiceCapableConnection) {
@@ -191,15 +198,9 @@ public class RecordingService implements IPendingServiceCallback {
 					stopStreamRecord(scope, rcl);
 				}
 			}
-			// Store to database
-			Long recordingId = recClient.getRecordingId();
-
 			recordingDao.updateEndTime(recordingId, new Date());
 
 			// Reset values
-			recClient.setRecordingId(null);
-			recClient.setRecordingStarted(false);
-			sessionManager.update(recClient);
 			log.debug("recordingConverterTask {}", recordingConverter);
 
 			Recording recording = recordingDao.get(recordingId);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/58cf1917/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
index f53d1af..5a259b5 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
@@ -391,7 +391,12 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	}
 
 	public void dropSharing(org.apache.openmeetings.db.entity.basic.IClient c, Long roomId) {
-		IScope scope = getChildScope(String.valueOf(roomId));
+		IScope scope = null;
+		try {
+			scope = getChildScope(String.valueOf(roomId));
+		} catch (Exception e) {
+			//no-op, scope doesn't exist while testing
+		}
 		//Elvis has left the building
 		new MessageSender(scope, "stopStream", new Object(), this) {
 			@Override