Repository: openmeetings
Updated Branches:
  refs/heads/master 3c5c98d6b -> 8653d2328


[OPENMEETINGS-551] screen-sharing fallback 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/8653d232
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/8653d232
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/8653d232

Branch: refs/heads/master
Commit: 8653d2328a93338b7fcc0c012f0c28bbab36d1fa
Parents: 3c5c98d
Author: Maxim Solodovnik <[email protected]>
Authored: Thu Jun 22 19:55:45 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Thu Jun 22 19:55:45 2017 +0700

----------------------------------------------------------------------
 .../main/java/org/apache/openmeetings/screenshare/Core.java | 9 +++++++++
 .../apache/openmeetings/screenshare/RTMPSScreenShare.java   | 6 ++++--
 .../apache/openmeetings/screenshare/RTMPScreenShare.java    | 6 ++++--
 .../apache/openmeetings/screenshare/RTMPTSScreenShare.java  | 6 ++++--
 .../apache/openmeetings/screenshare/RTMPTScreenShare.java   | 6 ++++--
 .../org/apache/openmeetings/web/room/VideoSettings.java     | 5 +++--
 6 files changed, 28 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/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 b0e8cde..b5b4ffb 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
@@ -31,6 +31,7 @@ import static org.slf4j.LoggerFactory.getLogger;
 
 import java.awt.MouseInfo;
 import java.awt.Point;
+import java.net.ConnectException;
 import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
@@ -313,6 +314,14 @@ public class Core implements IPendingServiceCallback, 
INetStreamEventHandler {
                instance.connect(host, port, map, this, new Object[]{params});
        }
 
+       void handleException(Throwable e) {
+               frame.setStatus("Exception: " + e);
+               if (e instanceof ConnectException) {
+                       fallbackUsed = true;
+                       connect(publishName);
+               }
+       }
+
        private void captureScreenStart() {
                try {
                        log.debug("captureScreenStart");

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/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 9af8a59..009407c 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
@@ -60,7 +60,9 @@ public class RTMPSScreenShare extends RTMPSClient implements 
IScreenShare {
 
        @Override
        public void handleException(Throwable throwable) {
-               log.error("{}", new Object[] { throwable.getCause() });
-               System.out.println(throwable.getCause());
+               Throwable cause = throwable.getCause();
+               log.error("{}", new Object[] { cause });
+               System.out.println(cause);
+               core.handleException(cause);
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/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 62a103e..5dfabd2 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
@@ -60,7 +60,9 @@ public class RTMPScreenShare extends RTMPClient implements 
IScreenShare {
 
        @Override
        public void handleException(Throwable throwable) {
-               log.error("{}", new Object[] { throwable.getCause() });
-               System.out.println(throwable.getCause());
+               Throwable cause = throwable.getCause();
+               log.error("{}", new Object[] { cause });
+               System.out.println(cause);
+               core.handleException(cause);
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/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 da43b20..3ecc10d 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
@@ -60,7 +60,9 @@ public class RTMPTSScreenShare extends RTMPTSClient 
implements IScreenShare {
 
        @Override
        public void handleException(Throwable throwable) {
-               log.error("{}", new Object[] { throwable.getCause() });
-               System.out.println(throwable.getCause());
+               Throwable cause = throwable.getCause();
+               log.error("{}", new Object[] { cause });
+               System.out.println(cause);
+               core.handleException(cause);
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/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 066594b..798e932 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
@@ -60,7 +60,9 @@ public class RTMPTScreenShare extends RTMPTClient implements 
IScreenShare {
 
        @Override
        public void handleException(Throwable throwable) {
-               log.error("{}", new Object[] { throwable.getCause() });
-               System.out.println(throwable.getCause());
+               Throwable cause = throwable.getCause();
+               log.error("{}", new Object[] { cause });
+               System.out.println(cause);
+               core.handleException(cause);
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8653d232/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
index 0e39518..94abced 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
@@ -80,12 +80,13 @@ public class VideoSettings extends Panel {
                        String path = url.getPath();
                        path = path.substring(1, path.indexOf('/', 2) + 1) + 
scope;
                        s.put(FLASH_NATIVE_SSL, 
gs.getBoolean(FLASH_NATIVE_SSL));
+                       int port = url.getPort() > -1 ? url.getPort() : 
url.getDefaultPort();
                        if (gs.getBoolean(FLASH_SECURE)) {
                                s.put(URL, getUri("rtmps", url.getHost(), 
gs.getString(FLASH_SSL_PORT), path));
-                               s.put(FALLBACK, getUri("rtmps", url.getHost(), 
url.getPort(), path));
+                               s.put(FALLBACK, getUri("rtmps", url.getHost(), 
port, path));
                        } else {
                                s.put(URL, getUri("rtmp", url.getHost(), 
gs.getString(FLASH_PORT), path));
-                               s.put(FALLBACK, getUri("rtmpt", url.getHost(), 
url.getPort(), path));
+                               s.put(FALLBACK, getUri("rtmpt", url.getHost(), 
port, path));
                        }
                } catch (Exception e) {
                        log.error("Error while constructing video settings 
parameters", e);

Reply via email to