// first check the validity of the timer state
this.assertTimerState();
if (this.nextExpiration == null)
{
throw new NoMoreTimeoutsException("No more timeouts for timer " + this);
}
long currentTimeInMillis = System.currentTimeMillis();
long nextTimeoutInMillis = this.nextExpiration.getTime();
// if the next expiration is *not* in future and the repeat interval isn't