From 3f09304b07def62eb49f470f61e039ab4a67bbd6 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 9 Mar 2015 14:58:44 +0100 Subject: [PATCH] add missing read action --- .../intellij/coverage/JavaCoverageSuite.java | 69 ++++++++++++------- 1 file changed, 44 insertions(+), 25 deletions(-) diff --git a/plugins/coverage/src/com/intellij/coverage/JavaCoverageSuite.java b/plugins/coverage/src/com/intellij/coverage/JavaCoverageSuite.java index a35c9145909a..c6e8d6c8016c 100644 --- a/plugins/coverage/src/com/intellij/coverage/JavaCoverageSuite.java +++ b/plugins/coverage/src/com/intellij/coverage/JavaCoverageSuite.java @@ -1,3 +1,18 @@ +/* + * Copyright 2000-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.intellij.coverage; import com.intellij.openapi.application.ApplicationManager; @@ -181,34 +196,38 @@ public class JavaCoverageSuite extends BaseCoverageSuite { return filteredPackageNames.length == 0 && getFilteredClassNames().length == 0; } - public @NotNull List getCurrentSuitePackages(Project project) { - List packages = new ArrayList(); - final PsiManager psiManager = PsiManager.getInstance(project); - final String[] filters = getFilteredPackageNames(); - if (filters.length == 0) { - if (getFilteredClassNames().length > 0) return Collections.emptyList(); + public @NotNull List getCurrentSuitePackages(final Project project) { + return ApplicationManager.getApplication().runReadAction(new Computable>() { + public List compute() { + final List packages = new ArrayList(); + final PsiManager psiManager = PsiManager.getInstance(project); + final String[] filters = getFilteredPackageNames(); + if (filters.length == 0) { + if (getFilteredClassNames().length > 0) return Collections.emptyList(); - final PsiPackage defaultPackage = JavaPsiFacade.getInstance(psiManager.getProject()).findPackage(""); - if (defaultPackage != null) { - packages.add(defaultPackage); - } - } else { - final List nonInherited = new ArrayList(); - for (final String filter : filters) { - if (!isSubPackage(filters, filter)) { - nonInherited.add(filter); + final PsiPackage defaultPackage = JavaPsiFacade.getInstance(psiManager.getProject()).findPackage(""); + if (defaultPackage != null) { + packages.add(defaultPackage); + } } - } - - for (String filter : nonInherited) { - final PsiPackage psiPackage = JavaPsiFacade.getInstance(psiManager.getProject()).findPackage(filter); - if (psiPackage != null) { - packages.add(psiPackage); - } - } - } + else { + final List nonInherited = new ArrayList(); + for (final String filter : filters) { + if (!isSubPackage(filters, filter)) { + nonInherited.add(filter); + } + } - return packages; + for (String filter : nonInherited) { + final PsiPackage psiPackage = JavaPsiFacade.getInstance(psiManager.getProject()).findPackage(filter); + if (psiPackage != null) { + packages.add(psiPackage); + } + } + } + return packages; + } + }); } private static boolean isSubPackage(String[] filters, String filter) {