diff options
Diffstat (limited to 'platform/lang-impl/src/com/intellij/refactoring')
3 files changed, 32 insertions, 10 deletions
diff --git a/platform/lang-impl/src/com/intellij/refactoring/BaseRefactoringProcessor.java b/platform/lang-impl/src/com/intellij/refactoring/BaseRefactoringProcessor.java index f83dcfe4788f..93921cd6c1dc 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/BaseRefactoringProcessor.java +++ b/platform/lang-impl/src/com/intellij/refactoring/BaseRefactoringProcessor.java @@ -431,8 +431,14 @@ public abstract class BaseRefactoringProcessor implements Runnable { final Runnable prepareHelpersRunnable = new Runnable() { @Override public void run() { - for (RefactoringHelper helper : Extensions.getExtensions(RefactoringHelper.EP_NAME)) { - preparedData.put(helper, helper.prepareOperation(writableUsageInfos)); + for (final RefactoringHelper helper : Extensions.getExtensions(RefactoringHelper.EP_NAME)) { + Object operation = ApplicationManager.getApplication().runReadAction(new Computable<Object>() { + @Override + public Object compute() { + return helper.prepareOperation(writableUsageInfos); + } + }); + preparedData.put(helper, operation); } } }; diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/RenameProcessor.java b/platform/lang-impl/src/com/intellij/refactoring/rename/RenameProcessor.java index a34d30dc5401..dd20f5a7d3e7 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/RenameProcessor.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/RenameProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 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. @@ -25,6 +25,7 @@ import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.MessageType; import com.intellij.openapi.ui.Messages; +import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.wm.IdeFrame; @@ -184,9 +185,14 @@ public class RenameProcessor extends BaseRefactoringProcessor { final Runnable runnable = new Runnable() { @Override public void run() { - for (Map.Entry<PsiElement, String> entry : renames.entrySet()) { + for (final Map.Entry<PsiElement, String> entry : renames.entrySet()) { final UsageInfo[] usages = - RenameUtil.findUsages(entry.getKey(), entry.getValue(), mySearchInComments, mySearchTextOccurrences, myAllRenames); + ApplicationManager.getApplication().runReadAction(new Computable<UsageInfo[]>() { + @Override + public UsageInfo[] compute() { + return RenameUtil.findUsages(entry.getKey(), entry.getValue(), mySearchInComments, mySearchTextOccurrences, myAllRenames); + } + }); Collections.addAll(variableUsages, usages); } } @@ -223,9 +229,14 @@ public class RenameProcessor extends BaseRefactoringProcessor { final Runnable runnable = new Runnable() { @Override public void run() { - for (final AutomaticRenamer renamer : myRenamers) { - renamer.findUsages(variableUsages, mySearchInComments, mySearchTextOccurrences, mySkippedUsages, myAllRenames); - } + ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override + public void run() { + for (final AutomaticRenamer renamer : myRenamers) { + renamer.findUsages(variableUsages, mySearchInComments, mySearchTextOccurrences, mySkippedUsages, myAllRenames); + } + } + }); } }; diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer.java b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer.java index 6fa0ed27d8c8..0f9011308533 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2014 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. @@ -245,7 +245,12 @@ public class VariableInplaceRenamer extends InplaceRefactoring { final Runnable runnable = new Runnable() { @Override public void run() { - renamer.findUsages(usages, false, false); + ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override + public void run() { + renamer.findUsages(usages, false, false); + } + }); } }; |