Repository: openmeetings Updated Branches: refs/heads/master eeb8217f7 -> 2e4f591fc
[OPENMEETINGS-1715] should be fixed Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/2e4f591f Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/2e4f591f Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/2e4f591f Branch: refs/heads/master Commit: 2e4f591fce79b18276fd00f78cb3f08a45e89e23 Parents: eeb8217 Author: Maxim Solodovnik <[email protected]> Authored: Thu Sep 28 17:18:14 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Thu Sep 28 17:18:14 2017 +0700 ---------------------------------------------------------------------- .../core/remote/ScopeApplicationAdapter.java | 16 +++++++++++++--- .../org/apache/openmeetings/screenshare/Core.java | 16 ++-------------- .../openmeetings/screenshare/RTMPSScreenShare.java | 2 +- .../openmeetings/screenshare/RTMPScreenShare.java | 2 +- .../openmeetings/screenshare/RTMPTSScreenShare.java | 2 +- .../openmeetings/screenshare/RTMPTScreenShare.java | 2 +- .../screenshare/gui/ScreenSharerFrame.java | 4 ++-- .../apache/openmeetings/web/app/Application.java | 2 +- .../openmeetings/web/room/menu/RoomMenuPanel.java | 2 +- 9 files changed, 23 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2e4f591f/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 050b2cd..8896ced 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 @@ -380,13 +380,23 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp } } - public void roomLeaveByScope(String uid, Long roomId) { - StreamClient rcl = sessionManager.get(uid); + public void roomLeaveByScope(Client c, Long roomId) { + StreamClient rcl = sessionManager.get(c.getUid()); IScope scope = getChildScope("" + roomId); - _log.debug("[roomLeaveByScope] {} {} {} {}", uid, roomId, rcl, scope); + _log.debug("[roomLeaveByScope] {} {} {} {}", c.getUid(), roomId, rcl, scope); if (rcl != null && scope != null) { roomLeaveByScope(rcl, scope); } + //Elvis has left the building + new MessageSender(scope, "stopStream", new Object(), this) { + @Override + public boolean filter(IConnection conn) { + StreamClient rcl = sessionManager.get(IClientUtil.getId(conn.getClient())); + return rcl == null + || Client.Type.sharing != rcl.getType() + || !c.getSid().equals(rcl.getSid()); + } + }.start(); } /** http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2e4f591f/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java index 6b22700..86e76a8 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java @@ -329,16 +329,6 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler { } } - public void sharingStop() { - try { - schdlr.standby(); - } catch (SchedulerException e) { - log.error("[schdlr.standby]", e); - } - startSharing = false; - captureScreenStop("stopStreaming"); - } - public void recordingStop() { startRecording = false; captureScreenStop("stopRecording"); @@ -426,12 +416,10 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler { frame.setStatus("" + params.get("error")); } } - } else if ("stopStream".equals(method)) { - sharingStop(); } } - public void stopStream() { + public void stopStream(Object obj) { try { log.debug("ScreenShare stopStream"); @@ -563,7 +551,7 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler { Object result = returnMap.get("result"); if ("stopAll".equals(result)) { log.trace("Stopping to stream, there is neither a Desktop Sharing nor Recording anymore"); - stopStream(); + stopStream(null); } else if ("stopSharingOnly".equals(result)) { stopSharing(); } else if ("stopRecordingOnly".equals(result)) { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2e4f591f/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java index 009407c..88ede5d 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java @@ -49,7 +49,7 @@ public class RTMPSScreenShare extends RTMPSClient implements IScreenShare { if (core.isAudioNotify()) { AudioTone.play(); } - core.stopStream(); + core.stopStream(null); } @Override http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2e4f591f/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPScreenShare.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPScreenShare.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPScreenShare.java index 5dfabd2..18241e3 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPScreenShare.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPScreenShare.java @@ -49,7 +49,7 @@ public class RTMPScreenShare extends RTMPClient implements IScreenShare { if (core.isAudioNotify()) { AudioTone.play(); } - core.stopStream(); + core.stopStream(null); } @Override http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2e4f591f/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java index 3ecc10d..d688cd0 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java @@ -49,7 +49,7 @@ public class RTMPTSScreenShare extends RTMPTSClient implements IScreenShare { if (core.isAudioNotify()) { AudioTone.play(); } - core.stopStream(); + core.stopStream(null); } @Override http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2e4f591f/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java index 798e932..6fd5051 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java @@ -49,7 +49,7 @@ public class RTMPTScreenShare extends RTMPTClient implements IScreenShare { if (core.isAudioNotify()) { AudioTone.play(); } - core.stopStream(); + core.stopStream(null); } @Override http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2e4f591f/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java index bab4136..5f27998 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java @@ -237,7 +237,7 @@ public class ScreenSharerFrame extends JFrame { addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { - core.stopStream(); + core.stopStream(null); ScreenSharerFrame.this.setVisible(false); System.exit(0); } @@ -274,7 +274,7 @@ public class ScreenSharerFrame extends JFrame { if (sharingStarted) { if (!sharingActionRequested) { sharingActionRequested = true; - core.sharingStop(); + core.stopSharing(); } else { logger.warn("Sharing action is already requested"); } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2e4f591f/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java index 4185c6b..472934c 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java @@ -633,7 +633,7 @@ public class Application extends AuthenticatedWebApplication implements IApplica clients.remove(c.getUid()); rooms.put(room.getId(), clients); } - getBean(ScopeApplicationAdapter.class).roomLeaveByScope(c.getUid(), room.getId()); + getBean(ScopeApplicationAdapter.class).roomLeaveByScope(c, room.getId()); c.setRoom(null); c.clear(); update(c); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2e4f591f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java index 9e1436c..376346c 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java @@ -372,8 +372,8 @@ public class RoomMenuPanel extends Panel { } public void exit(IPartialPageRequestHandler handler) { + exitRoom(room.getClient()); if (WebSession.getRights().contains(User.Right.Dashboard)) { - exitRoom(room.getClient()); room.getMainPanel().updateContents(ROOMS_PUBLIC, handler); } else { String url = getBean(ConfigurationDao.class).getString(CONFIG_REDIRECT_URL_FOR_EXTERNAL, "");
