You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by tt...@apache.org on 2008/09/10 13:51:55 UTC

svn commit: r693801 - /servicemix/utils/trunk/src/main/java/org/apache/servicemix/timers/impl/TimerManagerImpl.java

Author: tterm
Date: Wed Sep 10 04:51:54 2008
New Revision: 693801

URL: http://svn.apache.org/viewvc?rev=693801&view=rev
Log:
SM-1562 each eip endpoint creates a timer thread even if it is not used at all

Modified:
    servicemix/utils/trunk/src/main/java/org/apache/servicemix/timers/impl/TimerManagerImpl.java

Modified: servicemix/utils/trunk/src/main/java/org/apache/servicemix/timers/impl/TimerManagerImpl.java
URL: http://svn.apache.org/viewvc/servicemix/utils/trunk/src/main/java/org/apache/servicemix/timers/impl/TimerManagerImpl.java?rev=693801&r1=693800&r2=693801&view=diff
==============================================================================
--- servicemix/utils/trunk/src/main/java/org/apache/servicemix/timers/impl/TimerManagerImpl.java (original)
+++ servicemix/utils/trunk/src/main/java/org/apache/servicemix/timers/impl/TimerManagerImpl.java Wed Sep 10 04:51:54 2008
@@ -31,30 +31,39 @@
 
     private java.util.Timer timer;
 
-    public Timer schedule(TimerListener listener, long delay) {
+    public synchronized Timer schedule(TimerListener listener, long delay) {
         if (LOG.isDebugEnabled()) {
             LOG.debug("Schedule timer " + listener + " for " + delay);
         }
         TimerImpl tt = new TimerImpl(listener);
+        if (timer == null) {
+            timer = new java.util.Timer();
+        }
         timer.schedule(tt, delay);
         return tt;
     }
 
-    public Timer schedule(TimerListener listener, Date date) {
+    public synchronized Timer schedule(TimerListener listener, Date date) {
         if (LOG.isDebugEnabled()) {
             LOG.debug("Schedule timer " + listener + " at " + date);
         }
         TimerImpl tt = new TimerImpl(listener);
+        if (timer == null) {
+            timer = new java.util.Timer();
+        }
         timer.schedule(tt, date);
         return tt;
     }
 
     public void start() {
-        timer = new java.util.Timer();
+        // for later usage
     }
 
-    public void stop() {
-        timer.cancel();
+    public synchronized void stop() {
+        if (timer != null) {
+            timer.cancel();
+            timer = null;
+        }
     }
 
     protected static class TimerImpl extends TimerTask implements Timer {