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 2015/10/16 05:45:08 UTC

svn commit: r1708907 - in /openmeetings: branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/ trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/

Author: solomax
Date: Fri Oct 16 03:45:08 2015
New Revision: 1708907

URL: http://svn.apache.org/viewvc?rev=1708907&view=rev
Log:
[OPENMEETINGS-926] errors in screen sharing applet are fixed

Modified:
    openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
    openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java
    openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java
    openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java
    openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
    openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java
    openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java
    openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java

Modified: openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java?rev=1708907&r1=1708906&r2=1708907&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java (original)
+++ openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java Fri Oct 16 03:45:08 2015
@@ -55,6 +55,7 @@ import org.red5.server.net.rtmp.event.No
 import org.red5.server.net.rtmp.message.Header;
 import org.red5.server.net.rtmp.status.StatusCodes;
 import org.slf4j.Logger;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
 
 public class CoreScreenShare implements IPendingServiceCallback, INetStreamEventHandler {
 	private static final Logger log = getLogger(CoreScreenShare.class);
@@ -765,4 +766,14 @@ public class CoreScreenShare implements
 	public void setRemoteEnabled(boolean remoteEnabled) {
 		this.remoteEnabled = remoteEnabled;
 	}
+	
+	public void setDeadlockGuard(RTMPConnection conn) {
+		ThreadPoolTaskScheduler deadlockGuard = new ThreadPoolTaskScheduler();
+		deadlockGuard.setPoolSize(16);
+		deadlockGuard.setDaemon(false);
+		deadlockGuard.setWaitForTasksToCompleteOnShutdown(true);
+		deadlockGuard.setThreadNamePrefix("DeadlockGuardScheduler-");
+		deadlockGuard.afterPropertiesSet();
+		conn.setDeadlockGuardScheduler(deadlockGuard);
+	}
 }

Modified: openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java?rev=1708907&r1=1708906&r2=1708907&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java (original)
+++ openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java Fri Oct 16 03:45:08 2015
@@ -30,15 +30,14 @@ import org.slf4j.LoggerFactory;
 public class RTMPSScreenShare extends RTMPSClient implements IScreenShare {
 	private static final Logger logger = LoggerFactory.getLogger(RTMPSScreenShare.class);
 
-	private CoreScreenShare core = null;
+	private final CoreScreenShare core;
 
 	public RTMPSScreenShare(CoreScreenShare core) {
 		this.core = core;
 	};
 
 	@Override
-	public void connect(String server, int port, String application,
-			IPendingServiceCallback connectCallback) {
+	public void connect(String server, int port, String application, IPendingServiceCallback connectCallback) {
 		try { //FIXME need to be removed
 			super.connect(server, port, application, connectCallback);
 		} catch (NullPointerException npe) {
@@ -55,7 +54,7 @@ public class RTMPSScreenShare extends RT
 	public void connectionOpened(RTMPConnection conn) {
 		logger.debug("connection opened");
 		super.connectionOpened(conn);
-		this.conn = conn;
+		core.setDeadlockGuard(conn);
 	}
 
 	@Override

Modified: openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java?rev=1708907&r1=1708906&r2=1708907&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java (original)
+++ openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java Fri Oct 16 03:45:08 2015
@@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory;
 public class RTMPScreenShare extends RTMPClient implements IScreenShare {
 	private static final Logger logger = LoggerFactory.getLogger(RTMPScreenShare.class);
 
-	private CoreScreenShare core = null;
+	private final CoreScreenShare core;
 
 	public RTMPScreenShare(CoreScreenShare core) {
 		this.core = core;
@@ -44,7 +44,7 @@ public class RTMPScreenShare extends RTM
 	public void connectionOpened(RTMPConnection conn) {
 		logger.debug("connection opened");
 		super.connectionOpened(conn);
-		this.conn = conn;
+		core.setDeadlockGuard(conn);
 	}
 
 	@Override

Modified: openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java?rev=1708907&r1=1708906&r2=1708907&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java (original)
+++ openmeetings/branches/3.0.x/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java Fri Oct 16 03:45:08 2015
@@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory;
 public class RTMPTScreenShare extends RTMPTClient implements IScreenShare {
 	private static final Logger logger = LoggerFactory.getLogger(RTMPTScreenShare.class);
 
-	private CoreScreenShare core = null;
+	private final CoreScreenShare core;
 
 	public RTMPTScreenShare(CoreScreenShare core) {
 		this.core = core;
@@ -44,7 +44,7 @@ public class RTMPTScreenShare extends RT
 	public void connectionOpened(RTMPConnection conn) {
 		logger.debug("connection opened");
 		super.connectionOpened(conn);
-		this.conn = conn;
+		core.setDeadlockGuard(conn);
 	}
 
 	@Override

Modified: openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java?rev=1708907&r1=1708906&r2=1708907&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java Fri Oct 16 03:45:08 2015
@@ -55,6 +55,7 @@ import org.red5.server.net.rtmp.event.No
 import org.red5.server.net.rtmp.message.Header;
 import org.red5.server.net.rtmp.status.StatusCodes;
 import org.slf4j.Logger;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
 
 public class CoreScreenShare implements IPendingServiceCallback, INetStreamEventHandler {
 	private static final Logger log = getLogger(CoreScreenShare.class);
@@ -765,4 +766,14 @@ public class CoreScreenShare implements
 	public void setRemoteEnabled(boolean remoteEnabled) {
 		this.remoteEnabled = remoteEnabled;
 	}
+	
+	public void setDeadlockGuard(RTMPConnection conn) {
+		ThreadPoolTaskScheduler deadlockGuard = new ThreadPoolTaskScheduler();
+		deadlockGuard.setPoolSize(16);
+		deadlockGuard.setDaemon(false);
+		deadlockGuard.setWaitForTasksToCompleteOnShutdown(true);
+		deadlockGuard.setThreadNamePrefix("DeadlockGuardScheduler-");
+		deadlockGuard.afterPropertiesSet();
+		conn.setDeadlockGuardScheduler(deadlockGuard);
+	}
 }

Modified: openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java?rev=1708907&r1=1708906&r2=1708907&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java Fri Oct 16 03:45:08 2015
@@ -30,15 +30,14 @@ import org.slf4j.LoggerFactory;
 public class RTMPSScreenShare extends RTMPSClient implements IScreenShare {
 	private static final Logger logger = LoggerFactory.getLogger(RTMPSScreenShare.class);
 
-	private CoreScreenShare core = null;
+	private final CoreScreenShare core;
 
 	public RTMPSScreenShare(CoreScreenShare core) {
 		this.core = core;
 	};
 
 	@Override
-	public void connect(String server, int port, String application,
-			IPendingServiceCallback connectCallback) {
+	public void connect(String server, int port, String application, IPendingServiceCallback connectCallback) {
 		try { //FIXME need to be removed
 			super.connect(server, port, application, connectCallback);
 		} catch (NullPointerException npe) {
@@ -55,7 +54,7 @@ public class RTMPSScreenShare extends RT
 	public void connectionOpened(RTMPConnection conn) {
 		logger.debug("connection opened");
 		super.connectionOpened(conn);
-		this.conn = conn;
+		core.setDeadlockGuard(conn);
 	}
 
 	@Override

Modified: openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java?rev=1708907&r1=1708906&r2=1708907&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java Fri Oct 16 03:45:08 2015
@@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory;
 public class RTMPScreenShare extends RTMPClient implements IScreenShare {
 	private static final Logger logger = LoggerFactory.getLogger(RTMPScreenShare.class);
 
-	private CoreScreenShare core = null;
+	private final CoreScreenShare core;
 
 	public RTMPScreenShare(CoreScreenShare core) {
 		this.core = core;
@@ -44,7 +44,7 @@ public class RTMPScreenShare extends RTM
 	public void connectionOpened(RTMPConnection conn) {
 		logger.debug("connection opened");
 		super.connectionOpened(conn);
-		this.conn = conn;
+		core.setDeadlockGuard(conn);
 	}
 
 	@Override

Modified: openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java?rev=1708907&r1=1708906&r2=1708907&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java Fri Oct 16 03:45:08 2015
@@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory;
 public class RTMPTScreenShare extends RTMPTClient implements IScreenShare {
 	private static final Logger logger = LoggerFactory.getLogger(RTMPTScreenShare.class);
 
-	private CoreScreenShare core = null;
+	private final CoreScreenShare core;
 
 	public RTMPTScreenShare(CoreScreenShare core) {
 		this.core = core;
@@ -44,7 +44,7 @@ public class RTMPTScreenShare extends RT
 	public void connectionOpened(RTMPConnection conn) {
 		logger.debug("connection opened");
 		super.connectionOpened(conn);
-		this.conn = conn;
+		core.setDeadlockGuard(conn);
 	}
 
 	@Override