CodeStyleCachedValueProvider (@NotNull VirtualFile virtualFile) { synchronized (CACHE_LOCK) { FileData fileData = getOrCreateFileData(getFileKey(virtualFile)); SoftReference<CodeStyleCachedValueProvider> providerRef = fileData.getUserData(PROVIDER_KEY); CodeStyleCachedValueProvider provider = providerRef != null ? providerRef.get() : null; if (provider == null || provider.isExpired()) { try (AccessToken ignore = SlowOperations.knownIssue("IDEA-333522, EA-910708")) { FileViewProvider viewProvider = PsiManager.getInstance(myProject).findViewProvider(virtualFile); provider = new CodeStyleCachedValueProvider(Objects.requireNonNull(viewProvider), myProject); } fileData.putUserData(PROVIDER_KEY, new SoftReference<>(provider)); } return provider; } }