override suspend fun execute()

in src/main/kotlin/org/jetbrains/qodana/requests.kt [213:233]


    override suspend fun execute(state: SarifLanguageServer.ServerState) {
        if (!state.openFileCache.containsKey(uri)) return // we no longer need this file
        val locator = state.gitLocator?.value
        val repoFolder = state.repoFolder
        if (locator == null || repoFolder == null) {
            logger.warn("Repo for $uri in folder $repoFolder having revision ${state.sarifRevision}")
            return
        }
        var analyzedVersion: String? = null
        // we need to iterate both repo folder and path prefix to support submodules
        for (folder in listOfNotNull(repoFolder, state.pathPrefix)) {
            val relPathToFile = getRelativePath(uri, folder) ?: continue
            analyzedVersion = locator.retrieveFile(relPathToFile)
            if (analyzedVersion != null) break
        }
        if (analyzedVersion == null) {
            logger.error("Failed to get file ${getRelativePath(uri, repoFolder)} for ${state.sarifRevision} in ${state.repoFolder}")
            return
        }
        state.repositoryFileCache?.put(uri, analyzedVersion)
    }