Revision: 4d0126a342f2
Author:   unknown <yulian@Venera.(none)>
Date:     Tue Jan 15 13:21:41 2013
Log:      Removed priority for mgcp client threads , useless
Modified wav file impl to check if there is some data available before reading from stream.Otherwise may block the mms for a long time for example on problematic nfs

http://code.google.com/p/mediaserver/source/detail?r=4d0126a342f2

Modified:
 /client/jsr-309/tck/server.log
/client/mgcp/driver/src/main/java/org/mobicents/protocols/mgcp/stack/JainMgcpStackImpl.java /client/mgcp/driver/src/main/resources/org/mobicents/mgcp/stack/mgcp-stack.properties /resources/mediaplayer/src/main/java/org/mobicents/media/server/impl/resource/mediaplayer/audio/wav/WavTrackImpl.java

=======================================
--- /client/jsr-309/tck/server.log      Sat Jan 12 12:37:26 2013
+++ /client/jsr-309/tck/server.log      Tue Jan 15 13:21:41 2013
@@ -1,6 +1,6 @@
-2013-01-12 21:52:51,813 DEBUG [TestBase] (main) Loading file:/opt/mobsource/medianew/client/jsr-309/tck/exclude-list.properties -2013-01-12 21:52:51,815 INFO [Runner] (main) Start mandatory.functional.mediagroup.PlayerTest.test_2_1_1_1_Play javadoc::Joinable::1 javadoc::MediaGroup::1 javadoc::MediaGroup::6 javadoc::Player::1 javadoc::PlayerEvent::15 -2013-01-12 21:52:51,815 DEBUG [TestBase] (main) Getting a MsControlFactory instance -2013-01-12 21:52:51,837 INFO [DriverImpl] (main) Initializing MGCP on /127.0.0.1:2729 -2013-01-12 21:52:51,852 WARN [JainMgcpStackImpl] (main) Failed to locate properties file, using default values -2013-01-12 21:52:51,862 INFO [JainMgcpStackImpl] (main) Jain Mgcp stack bound to IP /127.0.0.1 and UDP port 2729 +2013-01-15 22:42:10,142 DEBUG [TestBase] (main) Loading file:/opt/mobsource/medianew/client/jsr-309/tck/exclude-list.properties +2013-01-15 22:42:10,143 INFO [Runner] (main) Start mandatory.functional.mediagroup.PlayerTest.test_2_1_1_1_Play javadoc::Joinable::1 javadoc::MediaGroup::1 javadoc::MediaGroup::6 javadoc::Player::1 javadoc::PlayerEvent::15 +2013-01-15 22:42:10,144 DEBUG [TestBase] (main) Getting a MsControlFactory instance +2013-01-15 22:42:10,165 INFO [DriverImpl] (main) Initializing MGCP on /127.0.0.1:2729 +2013-01-15 22:42:10,179 WARN [JainMgcpStackImpl] (main) Failed to locate properties file, using default values +2013-01-15 22:42:10,188 INFO [JainMgcpStackImpl] (main) Jain Mgcp stack bound to IP /127.0.0.1 and UDP port 2729
=======================================
--- /client/mgcp/driver/src/main/java/org/mobicents/protocols/mgcp/stack/JainMgcpStackImpl.java Sat Jan 12 12:37:26 2013 +++ /client/mgcp/driver/src/main/java/org/mobicents/protocols/mgcp/stack/JainMgcpStackImpl.java Tue Jan 15 13:21:41 2013
@@ -85,8 +85,6 @@
         */
        public static final String _EXECUTOR_QUEUE_SIZE = "executorQueueSize";

- public static final String _MESSAGE_READER_THREAD_PRIORITY = "messageReaderThreadPriority";
-
private static final Logger logger = Logger.getLogger(JainMgcpStackImpl.class);
        private static final String propertiesFileName = 
"mgcp-stack.properties";
        private String protocolVersion = "1.0";
@@ -94,8 +92,6 @@
        private InetAddress localAddress = null;
        private boolean stopped = true;

-       private int messageReaderThreadPriority = Thread.MIN_PRIORITY;
-
        private PacketRepresentationFactory prFactory = null;

        // Should we ever get data more than 5000 bytes?
@@ -185,8 +181,6 @@

                this.prFactory = new PacketRepresentationFactory(50, 
BUFFER_SIZE);

-               this.setPriority(this.messageReaderThreadPriority);
-
                decodingThreads=new DecodingThread[this.parserThreadPoolSize];
                for(int i=0;i<decodingThreads.length;i++)
                        decodingThreads[i]=new DecodingThread(this);
@@ -210,15 +204,10 @@

                        String val = null;

- val = props.getProperty(_MESSAGE_READER_THREAD_PRIORITY, "" + this.messageReaderThreadPriority);
-                       this.messageReaderThreadPriority = 
Integer.parseInt(val);
val = props.getProperty(_EXECUTOR_QUEUE_SIZE, "" + this.parserThreadPoolSize);
                        this.parserThreadPoolSize = Integer.parseInt(val);
                        val = null;

- logger.info(this.propertiesFileName + " read successfully! \nmessageReaderThreadPriority = "
-                                       + this.messageReaderThreadPriority);
-
logger.info(this.propertiesFileName + " read successfully! \nexecutorQueueSize = "
                                        + this.parserThreadPoolSize);

=======================================
--- /client/mgcp/driver/src/main/resources/org/mobicents/mgcp/stack/mgcp-stack.properties Fri Nov 2 08:59:50 2012 +++ /client/mgcp/driver/src/main/resources/org/mobicents/mgcp/stack/mgcp-stack.properties Tue Jan 15 13:21:41 2013
@@ -1,7 +1,3 @@
-#
-# Message reader thread priority, should be Thread.MAX_PRIORITY, MAX==10, MIN==1
-# This thread awaits data on socket and pushes it to even
-messageReaderThreadPriority=5
 # Number of parser threads used to parse incoming messages
 # Optimal while set to number of cpu cores available on server
 executorQueueSize=2
=======================================
--- /resources/mediaplayer/src/main/java/org/mobicents/media/server/impl/resource/mediaplayer/audio/wav/WavTrackImpl.java Sat Oct 27 12:25:28 2012 +++ /resources/mediaplayer/src/main/java/org/mobicents/media/server/impl/resource/mediaplayer/audio/wav/WavTrackImpl.java Tue Jan 15 13:21:41 2013
@@ -111,7 +111,17 @@
         try {
             long offset = frameSize * (timestamp / period/ 1000000L);
             byte[] skip = new byte[(int)offset];
-            totalRead+=inStream.read(skip);
+            int bytesRead=0;
+            while(bytesRead<skip.length && inStream.available()>0)
+            {
+               int len=inStream.read(skip,bytesRead,skip.length-bytesRead);
+               if(len==-1)
+                       return;
+
+               totalRead+=len;
+               bytesRead+=len;
+            }
+
         } catch (IOException e) {
                logger.error(e);
         }
@@ -122,7 +132,7 @@
        byte[] headerEnd = null;
        int tempValue;
        int bytesRead=0;
-       while (bytesRead < 36) {
+       while (bytesRead < 36 && stream.available()>0) {
             int len = stream.read(header, bytesRead, 36 - bytesRead);
             if (len == -1) {
                 return;
@@ -169,7 +179,7 @@
        headerEnd=new byte[8+ckSize-16];
                bytesRead=0;
        extraHeaderSize=headerEnd.length;
-       while (bytesRead < extraHeaderSize) {
+       while (bytesRead < extraHeaderSize && stream.available()>0) {
int len = stream.read(headerEnd, bytesRead, extraHeaderSize - bytesRead);
             if (len == -1) {
                 return;
@@ -194,7 +204,7 @@
                sizeOfData-=12;
                headerEnd=new byte[12];
                bytesRead=0;
-               while (bytesRead < 12) {
+               while (bytesRead < 12 && stream.available()>0) {
int len = stream.read(headerEnd, bytesRead, 12 - bytesRead);
                 if (len == -1) {
                     return;
@@ -223,7 +233,7 @@
private int readPacket(byte[] packet, int offset, int psize) throws IOException {
         int length = 0;
         try {
-            while (length < psize) {
+            while (length < psize && inStream.available()>0) {
int len = inStream.read(packet, offset + length, psize - length);
                 if (len == -1) {
                        return length;

Reply via email to