void () { if (myRoot == null) return; List<SMTestProxy> tests = myRoot.getAllTests(); for (SMTestProxy proxy : tests) { String url = proxy.getLocationUrl(); if (url != null && proxy.getLocator() != null) { String configurationName = myConfiguration != null ? myConfiguration.getName() : null; boolean isConfigurationDumbAware = myConfiguration != null && myConfiguration.getType().isDumbAware(); boolean isSMTestLocatorDumbAware = DumbService.isDumbAware(proxy.getLocator()); if (isConfigurationDumbAware && isSMTestLocatorDumbAware) { ApplicationManager.getApplication().runReadAction(() -> { writeTestState(proxy, url, configurationName); }); } else { if (isConfigurationDumbAware /*&& !isSMTestLocatorDumbAware*/) { LOG.warn("Configuration " + myConfiguration.getType() + " is dumb aware, but it's test locator " + proxy.getLocator() + " is not. " + "It leads to an hanging update task on finishing a test case in dumb mode."); } DumbService.getInstance(getProject()).runReadActionInSmartMode(() -> { writeTestState(proxy, url, configurationName); }); } } } }