code: private boolean checkCache() {
          if (this.cacheValid) {
              long now = System.nanoTime();
              if ((now - this.cacheExpiryTime) > 0) {
                  this.cacheValid = false;
              }
          }
          return this.cacheValid;
      }
docs: must be called within synchronized(this) block