Revision: 7485
Author: vladimir.ralev
Date: Tue Aug 18 22:47:14 2009
Log: More fixes for Issue 880
http://code.google.com/p/mobicents/source/detail?r=7485

Modified:
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/proxy/ProxyBranchImpl.java /trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/proxy/ProxyBranchTimerTask.java

=======================================
--- /trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/proxy/ProxyBranchImpl.java Tue Aug 18 20:26:03 2009 +++ /trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/proxy/ProxyBranchImpl.java Tue Aug 18 22:47:14 2009
@@ -604,14 +604,22 @@
                if(logger.isDebugEnabled()) {
                        logger.debug("Proxy Branch Timeout set to " + 
proxyBranchTimeout);
                }
-               if(proxyBranchTimeout != 0)
-                       timer.schedule(proxyTimeoutTask, proxyBranchTimeout * 
1000);
+               if(proxyBranchTimeout != 0) {
+                       try {
+                               timer.schedule(proxyTimeoutTask, 
proxyBranchTimeout * 1000);
+                       } catch (Exception e) {
+                               // Failsafe for Google Issue 880
+                               timer = new Timer();
+                               proxyTimeoutTask = new 
ProxyBranchTimerTask(this);
+                               timer.schedule(proxyTimeoutTask, 
proxyBranchTimeout * 1000);
+                       }
+               }
        }

        /**
         * Stop the C Timer.
         */
-       public void cancelTimer()
+       public synchronized  void cancelTimer()
        {
                if(proxyTimeoutTask != null)
                {
=======================================
--- /trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/proxy/ProxyBranchTimerTask.java Tue Apr 15 16:44:58 2008 +++ /trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/proxy/ProxyBranchTimerTask.java Tue Aug 18 22:47:14 2009
@@ -18,7 +18,10 @@

 import java.util.TimerTask;

+import org.apache.log4j.Logger;
+
 public class ProxyBranchTimerTask extends TimerTask{
+ private static transient Logger logger = Logger.getLogger(ProxyBranchTimerTask.class);
        private ProxyBranchImpl proxyBranch;

        public ProxyBranchTimerTask(ProxyBranchImpl proxyBranch)
@@ -28,6 +31,10 @@

        public void run()
        {
-               proxyBranch.onTimeout();
+               try {
+                       proxyBranch.onTimeout();
+               } catch (Exception e) {
+                       logger.error(e);
+               }
        }
 }

Reply via email to