private synchronized void reschedule ( long millis ) { currentFut = null ; // Remove current future. if ( ! closed ) { SCHEDULER . schedule ( this :: refresh , millis , TimeUnit . MILLISECONDS ) ; } else { try { underlying . close ( ) ; } catch ( Exception ex ) { LOG . log ( Level . WARNING , "failed to close resolver " + underlying . configString ( ) , ex ) ; } } }
Schedule next invocation of the update task .