more logging
null check
synchronized update path cache handler method
added tryLock() test
not waiting if timeout is 0
fixed issue with not waiting for wait timeout is -1 (wait forever)
cleaned up tests