diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java b/java/compiler/impl/src/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java index e9d800c7b475..afeba8ad63cd 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java @@ -113,11 +113,11 @@ public class TranslatingCompilerFilesMonitor implements AsyncFileListener { Set filesChanged = new THashSet<>(FileUtil.FILE_HASHING_STRATEGY); Set filesDeleted = new THashSet<>(FileUtil.FILE_HASHING_STRATEGY); for (VFileEvent event : events) { - if (event instanceof VFileDeleteEvent || event instanceof VFileMoveEvent || event instanceof VFileContentChangeEvent) { - final VirtualFile file = event.getFile(); - if (file != null) { - collectPaths(file, event instanceof VFileContentChangeEvent ? filesChanged : filesDeleted); - } + if (event instanceof VFileDeleteEvent || event instanceof VFileMoveEvent) { + collectPaths(event.getFile(), filesDeleted); + } + else if (event instanceof VFileContentChangeEvent) { + collectPaths(event.getFile(), filesChanged); } } return new ChangeApplier() { @@ -134,10 +134,7 @@ public class TranslatingCompilerFilesMonitor implements AsyncFileListener { handlePropChange((VFilePropertyChangeEvent)event, filesDeleted, filesChanged); } else if (event instanceof VFileMoveEvent || event instanceof VFileCreateEvent || event instanceof VFileCopyEvent) { - VirtualFile file = event.getFile(); - if (file != null) { - collectPaths(file, filesChanged); - } + collectPaths(event.getFile(), filesChanged); } } @@ -202,8 +199,8 @@ public class TranslatingCompilerFilesMonitor implements AsyncFileListener { } } - private static void collectPaths(@NotNull VirtualFile file, @NotNull Collection outFiles) { - if (!isIgnoredOrUnderIgnoredDirectory(file)) { + private static void collectPaths(@Nullable VirtualFile file, @NotNull Collection outFiles) { + if (file != null && !isIgnoredOrUnderIgnoredDirectory(file)) { processRecursively(file, !isInContentOfOpenedProject(file), f -> outFiles.add(new File(f.getPath()))); } }