mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
tolerate INRE during code formatting (with php rearranger; EA-98847 - INRE: FileBasedIndexImpl.handleDumbMode
This commit is contained in:
+12
-11
@@ -278,7 +278,7 @@ public abstract class AbstractLayoutCodeProcessor {
|
||||
return new FileTreeIterator(myProject);
|
||||
}
|
||||
|
||||
return new FileTreeIterator(Collections.<PsiFile>emptyList());
|
||||
return new FileTreeIterator(Collections.emptyList());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -355,7 +355,7 @@ public abstract class AbstractLayoutCodeProcessor {
|
||||
LOG.error(e);
|
||||
}
|
||||
};
|
||||
runLayoutCodeProcess(readAction, writeAction, false );
|
||||
runLayoutCodeProcess(readAction, writeAction);
|
||||
}
|
||||
|
||||
private boolean checkFileWritable(final PsiFile file){
|
||||
@@ -396,7 +396,7 @@ public abstract class AbstractLayoutCodeProcessor {
|
||||
return !GeneratedSourcesFilter.isGeneratedSourceByAnyFilter(virtualFile, file.getProject());
|
||||
}
|
||||
|
||||
private void runLayoutCodeProcess(final Runnable readAction, final Runnable writeAction, final boolean globalAction) {
|
||||
private void runLayoutCodeProcess(final Runnable readAction, final Runnable writeAction) {
|
||||
final ProgressWindow progressWindow = new ProgressWindow(true, myProject);
|
||||
progressWindow.setTitle(myCommandName);
|
||||
progressWindow.setText(myProgressText);
|
||||
@@ -418,7 +418,6 @@ public abstract class AbstractLayoutCodeProcessor {
|
||||
}
|
||||
|
||||
final Runnable writeRunnable = () -> CommandProcessor.getInstance().executeCommand(myProject, () -> {
|
||||
if (globalAction) CommandProcessor.getInstance().markCurrentCommandAsGlobal(myProject);
|
||||
try {
|
||||
writeAction.run();
|
||||
|
||||
@@ -544,18 +543,15 @@ public abstract class AbstractLayoutCodeProcessor {
|
||||
}
|
||||
|
||||
private void performFileProcessing(@NotNull PsiFile file) {
|
||||
myProcessors.stream().forEach((processor) -> {
|
||||
Ref<FutureTask<Boolean>> writeTaskRef = Ref.create();
|
||||
|
||||
ApplicationManager.getApplication().runReadAction(() -> writeTaskRef.set(processor.prepareTask(file, myProcessChangedTextOnly)));
|
||||
for (AbstractLayoutCodeProcessor processor : myProcessors) {
|
||||
FutureTask<Boolean> writeTask = ReadAction.compute(() -> processor.prepareTask(file, myProcessChangedTextOnly));
|
||||
|
||||
ProgressIndicatorProvider.checkCanceled();
|
||||
FutureTask<Boolean> writeTask = writeTaskRef.get();
|
||||
|
||||
|
||||
ApplicationManager.getApplication().invokeAndWait(() -> WriteCommandAction.runWriteCommandAction(myProject, myCommandName, null, writeTask));
|
||||
|
||||
checkStop(writeTask, file);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void checkStop(FutureTask<Boolean> task, PsiFile file) {
|
||||
@@ -565,6 +561,11 @@ public abstract class AbstractLayoutCodeProcessor {
|
||||
}
|
||||
}
|
||||
catch (InterruptedException | ExecutionException e) {
|
||||
Throwable cause = e.getCause();
|
||||
if (cause instanceof IndexNotReadyException) {
|
||||
LOG.warn(cause);
|
||||
return;
|
||||
}
|
||||
LOG.error("Got unexpected exception during formatting " + file, e);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user