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, "");

Reply via email to