Author: solomax
Date: Wed Feb 11 10:25:11 2015
New Revision: 1658915

URL: http://svn.apache.org/r1658915
Log:
Infinite loop while waiting for recording is fixed

Modified:
    
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java
    
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/flvrecord/listener/async/BaseStreamWriter.java

Modified: 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java?rev=1658915&r1=1658914&r2=1658915&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java
 Wed Feb 11 10:25:11 2015
@@ -43,7 +43,8 @@ import org.slf4j.Logger;
 
 public abstract class BaseStreamWriter implements Runnable {
        private static final Logger log = 
Red5LoggerFactory.getLogger(BaseStreamWriter.class, webAppRootKey);
-       public final static int TIME_TO_WAIT_FOR_FRAME = 15 * 60 * 1000; //15 
minutes
+       private final static int MINUTE_MULTIPLIER = 60 * 1000;
+       public final static int TIME_TO_WAIT_FOR_FRAME = 15 * MINUTE_MULTIPLIER;
        protected int startTimeStamp = -1;
        protected long initialDelta = 0;
 
@@ -125,7 +126,7 @@ public abstract class BaseStreamWriter i
 
        public void run() {
                log.debug("##REC:: stream writer started");
-               long lastPackedRecieved = Long.MAX_VALUE - 
TIME_TO_WAIT_FOR_FRAME - 1;
+               long lastPackedRecieved = System.currentTimeMillis() + 
TIME_TO_WAIT_FOR_FRAME;
                long counter = 0;
                while (!stopping) {
                        try {
@@ -139,6 +140,7 @@ public abstract class BaseStreamWriter i
 
                                        packetReceived(item);
                                } else if (dostopping || lastPackedRecieved + 
TIME_TO_WAIT_FOR_FRAME < System.currentTimeMillis()) {
+                                       log.debug(String.format("##REC:: none 
packets received for: %s minutes, exiting", (System.currentTimeMillis() - 
lastPackedRecieved) / MINUTE_MULTIPLIER)); 
                                        stopping = true;
                                        closeStream();
                                }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/flvrecord/listener/async/BaseStreamWriter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/flvrecord/listener/async/BaseStreamWriter.java?rev=1658915&r1=1658914&r2=1658915&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/flvrecord/listener/async/BaseStreamWriter.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/flvrecord/listener/async/BaseStreamWriter.java
 Wed Feb 11 10:25:11 2015
@@ -43,7 +43,8 @@ import org.slf4j.Logger;
 
 public abstract class BaseStreamWriter implements Runnable {
        private static final Logger log = 
Red5LoggerFactory.getLogger(BaseStreamWriter.class, webAppRootKey);
-       public final static int TIME_TO_WAIT_FOR_FRAME = 15 * 60 * 1000; //15 
minutes
+       private final static int MINUTE_MULTIPLIER = 60 * 1000;
+       public final static int TIME_TO_WAIT_FOR_FRAME = 15 * MINUTE_MULTIPLIER;
        protected int startTimeStamp = -1;
        protected long initialDelta = 0;
 
@@ -125,7 +126,7 @@ public abstract class BaseStreamWriter i
 
        public void run() {
                log.debug("##REC:: stream writer started");
-               long lastPackedRecieved = Long.MAX_VALUE - 
TIME_TO_WAIT_FOR_FRAME - 1;
+               long lastPackedRecieved = System.currentTimeMillis() + 
TIME_TO_WAIT_FOR_FRAME;
                long counter = 0;
                while (!stopping) {
                        try {
@@ -139,6 +140,7 @@ public abstract class BaseStreamWriter i
 
                                        packetReceived(item);
                                } else if (dostopping || lastPackedRecieved + 
TIME_TO_WAIT_FOR_FRAME < System.currentTimeMillis()) {
+                                       log.debug(String.format("##REC:: none 
packets received for: %s minutes, exiting", (System.currentTimeMillis() - 
lastPackedRecieved) / MINUTE_MULTIPLIER)); 
                                        stopping = true;
                                        closeStream();
                                }


Reply via email to