mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
avoid accessing index during events dispatch
This commit is contained in:
+6
-1
@@ -30,6 +30,7 @@ import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.xml.XmlFile;
|
||||
import com.intellij.util.indexing.FileBasedIndex;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -119,10 +120,14 @@ public class PropertiesImplUtil extends PropertiesUtil {
|
||||
|
||||
@Nullable
|
||||
public static PropertiesFile getPropertiesFile(@Nullable PsiFile file) {
|
||||
if (file == null) return null;
|
||||
if (!canBePropertyFile(file)) return null;
|
||||
return file instanceof PropertiesFile ? (PropertiesFile)file : XmlPropertiesFileImpl.getPropertiesFile(file);
|
||||
}
|
||||
|
||||
public static boolean canBePropertyFile(PsiFile file) {
|
||||
return file instanceof PropertiesFile || file instanceof XmlFile;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static PropertiesFile getPropertiesFile(@Nullable PsiElement element) {
|
||||
if (!(element instanceof PsiFile)) return null;
|
||||
|
||||
+5
-11
@@ -23,7 +23,6 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.NotNullLazyValue;
|
||||
import com.intellij.openapi.util.NullableComputable;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.util.Function;
|
||||
@@ -32,9 +31,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
/**
|
||||
* @author Dmitry Batkovich
|
||||
@@ -103,14 +100,11 @@ public class ResourceBundleManager implements PersistentStateComponent<ResourceB
|
||||
@Override
|
||||
public void beforeChildRemoval(@NotNull PsiTreeChangeEvent event) {
|
||||
final PsiElement child = event.getChild();
|
||||
if (!(child instanceof PsiFile)) {
|
||||
return;
|
||||
}
|
||||
PropertiesFile file = PropertiesImplUtil.getPropertiesFile((PsiFile)child);
|
||||
if (file == null) {
|
||||
return;
|
||||
}
|
||||
final VirtualFile virtualFile = file.getVirtualFile();
|
||||
if (!(child instanceof PsiFile)) return;
|
||||
PsiFile psiFile = (PsiFile)child;
|
||||
if (!PropertiesImplUtil.canBePropertyFile(psiFile)) return;
|
||||
|
||||
final VirtualFile virtualFile = psiFile.getVirtualFile();
|
||||
final NotNullLazyValue<String> url = new NotNullLazyValue<String>() {
|
||||
@NotNull
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user