[utilities COMMIT] /java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/service/AbstractReloadable...

noreply at shibboleth.net noreply at shibboleth.net
Fri Dec 12 17:57:31 EST 2014


Author: scantor
Date: Fri Dec 12 17:57:31 2014
New Revision: 705

URL: http://svn.shibboleth.net/view/utilities?rev=705&view=rev
Log:
IDP-539 - Fix AbstractReloadableService to create its own Timer, and pull dependency on TaskTimer bean.

Modified:
    java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/service/AbstractReloadableService.java

Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/service/AbstractReloadableService.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/service/AbstractReloadableService.java?rev=705&r1=704&r2=705&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/service/AbstractReloadableService.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/service/AbstractReloadableService.java Fri Dec 12 17:57:31 2014
@@ -55,6 +55,9 @@
     /** Timer used to schedule configuration reload tasks. */
     @Nullable private Timer reloadTaskTimer;
 
+    /** Timer used to schedule reload tasks if no external one set. */
+    @Nullable private Timer internalTaskTimer;
+
     /** Watcher that monitors the set of configuration resources for this service for changes. */
     @Nullable private ServiceReloadTask reloadTask;
 
@@ -182,12 +185,14 @@
 
         if (reloadCheckDelay > 0) {
             if (null == reloadTaskTimer) {
-                log.info("{} No reload task timer specified, creating default", getLogPrefix());
-                reloadTaskTimer = new Timer("Timer for " + getId());
+                log.debug("{} No reload task timer specified, creating default", getLogPrefix());
+                internalTaskTimer = new Timer("Timer for " + getId());
+            } else {
+                internalTaskTimer = reloadTaskTimer;
             }
             log.info("{} Reload time set to: {}, starting refresh thread", getLogPrefix(), reloadCheckDelay);
             reloadTask = new ServiceReloadTask();
-            reloadTaskTimer.schedule(reloadTask, reloadCheckDelay, reloadCheckDelay);
+            internalTaskTimer.schedule(reloadTask, reloadCheckDelay, reloadCheckDelay);
         }
     }
 
@@ -195,11 +200,16 @@
     @Override
     protected void doDestroy() {
         log.info("{} Starting shutdown", getLogPrefix());
-        super.doDestroy();
         if (reloadTask != null) {
             reloadTask.cancel();
-        }
+            reloadTask = null;
+        }
+        if (reloadTaskTimer == null) {
+            internalTaskTimer.cancel();
+        }
+        internalTaskTimer = null;
         log.info("{} Completing shutdown", getLogPrefix());
+        super.doDestroy();
     }
 
     /**



More information about the commits mailing list