void (final VirtualFile fileOrDir, @NotNull List<? extends FilePropertyPusher<?>> pushers, final Object[] moduleValues) { if (pushers.isEmpty()) return; if (fileOrDir.isDirectory()) { fileOrDir.getChildren(); // outside read action to avoid freezes } ReadAction.run(() -> { if (!fileOrDir.isValid() || !(fileOrDir instanceof VirtualFileWithId)) return; doApplyPushersToFile(fileOrDir, pushers, moduleValues); }); }