LazyRefreshingSelfQueue<String> (final VcsRoot vcsRoot) { synchronized (myLock) { LazyRefreshingSelfQueue<String> queue = myRefreshingQueues.get(vcsRoot); if (queue != null) return queue; queue = new LazyRefreshingSelfQueue<>( () -> { int interval = VcsConfiguration.getInstance(myProject).CHANGED_ON_SERVER_INTERVAL; return interval > 0 ? interval * 60000L : ourRottenPeriod; }, new MyShouldUpdateChecker(vcsRoot), new MyUpdater(vcsRoot) ); myRefreshingQueues.put(vcsRoot, queue); return queue; } }