[java-opensaml COMMIT] /trunk/opensaml-storage-api/src/main/java/org/opensaml/storage/AbstractStorageService.java

noreply at shibboleth.net noreply at shibboleth.net
Fri Oct 11 11:18:21 EDT 2013


Author: scantor
Date: Fri Oct 11 11:18:21 2013
New Revision: 3466

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3466&view=rev
Log:
Auto-manage Timer if not set externally.

Modified:
    trunk/opensaml-storage-api/src/main/java/org/opensaml/storage/AbstractStorageService.java

Modified: trunk/opensaml-storage-api/src/main/java/org/opensaml/storage/AbstractStorageService.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-storage-api/src/main/java/org/opensaml/storage/AbstractStorageService.java?rev=3466&r1=3465&r2=3466&view=diff
==============================================================================
--- trunk/opensaml-storage-api/src/main/java/org/opensaml/storage/AbstractStorageService.java (original)
+++ trunk/opensaml-storage-api/src/main/java/org/opensaml/storage/AbstractStorageService.java Fri Oct 11 11:18:21 2013
@@ -53,6 +53,9 @@
     /** Timer used to schedule cleanup tasks. */
     private Timer cleanupTaskTimer;
 
+    /** Timer used to schedule cleanup tasks if no external one set. */
+    private Timer internalTaskTimer;
+    
     /** Task that cleans up expired records. */
     private TimerTask cleanupTask;
 
@@ -170,9 +173,13 @@
 
         if (cleanupInterval > 0) {
             cleanupTask = getCleanupTask();
-            if (cleanupTask == null || cleanupTaskTimer == null) {
+            if (cleanupTask == null) {
                 throw new ComponentInitializationException(
-                        "Cleanup task and timer cannot be null if cleanupInterval is set.");
+                        "Cleanup task cannot be null if cleanupInterval is set.");
+            } else if (cleanupTaskTimer == null) {
+                internalTaskTimer = new Timer();
+            } else {
+                internalTaskTimer = cleanupTaskTimer;
             }
             cleanupTaskTimer.schedule(cleanupTask, cleanupInterval * 1000, cleanupInterval * 1000);
         }
@@ -183,6 +190,10 @@
         if (cleanupTask != null) {
             cleanupTask.cancel();
             cleanupTask = null;
+            if (cleanupTaskTimer == null) {
+                internalTaskTimer.cancel();
+            }
+            internalTaskTimer = null;
         }
         super.doDestroy();
     }



More information about the commits mailing list