@Override
 protected void serviceStop() {
   if (renewalTimer != null) {
     renewalTimer.cancel();
   }
   appTokens.clear();
   this.renewerService.shutdown();
   dtCancelThread.interrupt();
   try {
     dtCancelThread.join(1000);
   } catch (InterruptedException e) {
     e.printStackTrace();
   }
   if (tokenKeepAliveEnabled && delayedRemovalThread != null) {
     delayedRemovalThread.interrupt();
     try {
       delayedRemovalThread.join(1000);
     } catch (InterruptedException e) {
       LOG.info("Interrupted while joining on delayed removal thread.", e);
     }
   }
 }