First of all thanks for your efforts. I find useful to being able to detect connection time idle timeouts which is referenced at #108.
Currently we are using system.nanotime to detect idle time duration and i think it's correct. The thing is watchdog is based on Timer class so it is using System.currentTimeMillis. Timer class is sensitive to system time changes so i suggest a little change to use single threaded scheduled executor service. Scheduled executor service uses system.nanotime internally and i think the code will be more resilient when system time back shifts.
Hi @steveohara and @akochubey2004,
First of all thanks for your efforts. I find useful to being able to detect connection time idle timeouts which is referenced at #108. Currently we are using system.nanotime to detect idle time duration and i think it's correct. The thing is watchdog is based on Timer class so it is using System.currentTimeMillis. Timer class is sensitive to system time changes so i suggest a little change to use single threaded scheduled executor service. Scheduled executor service uses system.nanotime internally and i think the code will be more resilient when system time back shifts.
Please look at https://stackoverflow.com/questions/18803695/how-is-the-timer-class-in-java-sensitive-to-the-system-clock