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

noreply at shibboleth.net noreply at shibboleth.net
Tue Mar 24 06:28:37 EDT 2015


Author: rdw
Date: Tue Mar 24 06:28:36 2015
New Revision: 781

URL: http://svn.shibboleth.net/view/utilities?rev=781&view=rev
Log:
IDP-663 Add an extra safety net at the bottom of the reloadable service stack.  Log (at debug) a reload error there as well.  Fix a couple of errors in service teardown.

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=781&r1=780&r2=781&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 Tue Mar 24 06:28:36 2015
@@ -75,7 +75,7 @@
 
     /** The log prefix. */
     @Nullable private String logPrefix;
-    
+
     /** Constructor. */
     public AbstractReloadableService() {
         reloadCheckDelay = 0;
@@ -85,7 +85,9 @@
      * Gets the number of milliseconds between one reload check and another. A value of 0 or less indicates that no
      * reloading will be performed.
      * 
-     * <p>Default value: 0</p>
+     * <p>
+     * Default value: 0
+     * </p>
      * 
      * @return number of milliseconds between one reload check and another
      */
@@ -171,7 +173,7 @@
         try {
             lastReloadInstant = new DateTime(ISOChronology.getInstanceUTC());
             doReload();
-            lastSuccessfulReleaseInstant = lastReloadInstant; 
+            lastSuccessfulReleaseInstant = lastReloadInstant;
         } catch (final ServiceException e) {
             if (isFailFast()) {
                 throw new ComponentInitializationException(getLogPrefix() + " could not perform initial load", e);
@@ -182,6 +184,9 @@
             } else {
                 log.error("{} No further attempts will be made to reload", getLogPrefix());
             }
+        } catch (final Exception e) {
+            log.error("{} Unexpected error during initial load {}", getLogPrefix(), e);
+            throw new ComponentInitializationException(getLogPrefix() + " Unexpected error during initial load", e);
         }
 
         if (reloadCheckDelay > 0) {
@@ -198,14 +203,13 @@
     }
 
     /** {@inheritDoc} */
-    @Override
-    protected void doDestroy() {
+    @Override protected void doDestroy() {
         log.info("{} Starting shutdown", getLogPrefix());
         if (reloadTask != null) {
             reloadTask.cancel();
             reloadTask = null;
         }
-        if (reloadTaskTimer == null) {
+        if (reloadTaskTimer == null && internalTaskTimer != null) {
             internalTaskTimer.cancel();
         }
         internalTaskTimer = null;
@@ -283,11 +287,13 @@
             if (shouldReload()) {
                 try {
                     reload();
-                } catch (final ServiceException e) {
-                    
+                } catch (final ServiceException se) {
+                    log.debug("{} Previously logged error during reload", getLogPrefix(), se);
+                } catch (final Throwable t) {
+                    log.warn("{} Unexpected error during reload", getLogPrefix(), t);
                 }
             }
         }
     }
-    
+
 }



More information about the commits mailing list