mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-05 01:50:56 +07:00
[workspace file index] diagnostics: report an error to a plugin if 'null' item is returned from getAdditionalProjectLibraries (EA-1194831)
Instead of failing with NullPointerException. GitOrigin-RevId: 885a78d11460bba19b0e8ad9d70dc60a7c713295
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c13385ff81
commit
38cb87cb7d
@@ -1,7 +1,9 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.workspaceModel.core.fileIndex.impl
|
||||
|
||||
import com.intellij.diagnostic.PluginException
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.module.ModuleManager
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.roots.AdditionalLibraryRootsProvider
|
||||
@@ -141,7 +143,12 @@ internal class NonIncrementalContributors(private val project: Project) {
|
||||
private fun computeFileSets(): Map<VirtualFile, StoredFileSetCollection> {
|
||||
val result = HashMap<VirtualFile, StoredFileSetCollection>()
|
||||
AdditionalLibraryRootsProvider.EP_NAME.extensionList.forEach { provider ->
|
||||
provider.getAdditionalProjectLibraries(project).forEach { library ->
|
||||
for (library in provider.getAdditionalProjectLibraries(project)) {
|
||||
if (library == null) {
|
||||
PluginException.logPluginError(LOG, "The result of AdditionalLibraryRootsProvider.getAdditionalProjectLibraries on ${provider.javaClass} includes 'null' item", null, provider.javaClass)
|
||||
continue
|
||||
}
|
||||
|
||||
fun registerRoots(files: MutableCollection<VirtualFile>, kind: WorkspaceFileKind, fileSetData: WorkspaceFileSetData) {
|
||||
files.forEach { root ->
|
||||
RootFileValidityChecker.correctRoot(root, library, provider)?.let {
|
||||
@@ -179,6 +186,8 @@ internal class NonIncrementalContributors(private val project: Project) {
|
||||
fun isPlaceholderReference(entityPointer: EntityPointer<WorkspaceEntity>): Boolean {
|
||||
return entityPointer is NonIncrementalMarker
|
||||
}
|
||||
|
||||
private val LOG = logger<NonIncrementalContributors>()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user