NonBlockingReadAction<ValidationResult> (RunnerAndConfigurationSettings snapshot) { return ReadAction.nonBlocking(() -> { try { snapshot.checkSettings(myExecutor); for (Executor executor : Executor.EXECUTOR_EXTENSION_NAME.getExtensionList()) { ProgramRunner<?> runner = ProgramRunner.getRunner(executor.getId(), snapshot.getConfiguration()); if (runner != null) { checkConfiguration(runner, snapshot); } } } catch (ConfigurationException e) { return createValidationResult(snapshot, e); } return null; }); }