diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/BindFieldsFromParametersAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/BindFieldsFromParametersAction.java index 9b7c38453c68..0c0e6bde9a65 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/BindFieldsFromParametersAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/BindFieldsFromParametersAction.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 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. @@ -21,7 +21,6 @@ import com.intellij.codeInsight.intention.HighPriorityAction; import com.intellij.ide.util.MemberChooser; import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.application.TransactionGuard; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.fileEditor.ex.IdeDocumentHistory; @@ -158,27 +157,25 @@ public class BindFieldsFromParametersAction extends BaseIntentionAction implemen private static void invoke(final Project project, Editor editor, PsiFile file, boolean isInteractive) { PsiParameter psiParameter = FieldFromParameterUtils.findParameterAtCursor(file, editor); if (!FileModificationService.getInstance().prepareFileForWrite(file)) return; - TransactionGuard.getInstance().submitTransactionAndWait(() -> { - final PsiMethod method = psiParameter != null ? (PsiMethod)psiParameter.getDeclarationScope() : PsiTreeUtil.getParentOfType(file.findElementAt(editor.getCaretModel().getOffset()), PsiMethod.class); - LOG.assertTrue(method != null); + final PsiMethod method = psiParameter != null ? (PsiMethod)psiParameter.getDeclarationScope() : PsiTreeUtil.getParentOfType(file.findElementAt(editor.getCaretModel().getOffset()), PsiMethod.class); + LOG.assertTrue(method != null); - final HashSet usedNames = new HashSet<>(); - final Iterable parameters = selectParameters(project, method, copyUnboundedParamsAndClearOriginal(method), isInteractive); - final MultiMap types = new MultiMap<>(); - for (PsiParameter parameter : parameters) { - types.putValue(parameter.getType(), parameter); + final HashSet usedNames = new HashSet<>(); + final Iterable parameters = selectParameters(project, method, copyUnboundedParamsAndClearOriginal(method), isInteractive); + final MultiMap types = new MultiMap<>(); + for (PsiParameter parameter : parameters) { + types.putValue(parameter.getType(), parameter); + } + final CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(project); + final boolean preferLongerNames = settings.PREFER_LONGER_NAMES; + for (PsiParameter selected : parameters) { + try { + settings.PREFER_LONGER_NAMES = preferLongerNames || types.get(selected.getType()).size() > 1; + processParameter(project, selected, usedNames); + } finally { + settings.PREFER_LONGER_NAMES = preferLongerNames; } - final CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(project); - final boolean preferLongerNames = settings.PREFER_LONGER_NAMES; - for (PsiParameter selected : parameters) { - try { - settings.PREFER_LONGER_NAMES = preferLongerNames || types.get(selected.getType()).size() > 1; - processParameter(project, selected, usedNames); - } finally { - settings.PREFER_LONGER_NAMES = preferLongerNames; - } - } - }); + } } @NotNull diff --git a/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/ShowIntentionActionsHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/ShowIntentionActionsHandler.java index 504dc3dff075..8a6d9d27854a 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/ShowIntentionActionsHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/ShowIntentionActionsHandler.java @@ -32,6 +32,7 @@ import com.intellij.featureStatistics.FeatureUsageTracker; import com.intellij.featureStatistics.FeatureUsageTrackerImpl; import com.intellij.injected.editor.EditorWindow; import com.intellij.lang.injection.InjectedLanguageManager; +import com.intellij.openapi.application.TransactionGuard; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.diagnostic.Logger; @@ -182,7 +183,7 @@ public class ShowIntentionActionsHandler implements CodeInsightActionHandler { (psiFile, editor) -> availableFor(psiFile, editor, action)) : Pair.create(hostFile, null); if (pair == null) return false; - CommandProcessor.getInstance().executeCommand(project, () -> { + CommandProcessor.getInstance().executeCommand(project, () -> TransactionGuard.getInstance().submitTransactionAndWait(() -> { Runnable r = () -> action.invoke(project, pair.second, pair.first); try { if (action.startInWriteAction()) { @@ -197,7 +198,7 @@ public class ShowIntentionActionsHandler implements CodeInsightActionHandler { if (hostEditor != null) { DaemonCodeAnalyzer.getInstance(project).updateVisibleHighlighters(hostEditor); } - }, text, null); + }), text, null); return true; } } diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java index 554d6cc6de77..cdeb1b6ba4b2 100644 --- a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java +++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java @@ -60,6 +60,7 @@ import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.ActionManagerEx; import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.application.Result; +import com.intellij.openapi.application.TransactionGuard; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.command.WriteCommandAction; @@ -551,7 +552,7 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig @Override public void launchAction(@NotNull final IntentionAction action) { - ShowIntentionActionsHandler.chooseActionAndInvoke(getFile(), getEditor(), action, action.getText()); + TransactionGuard.submitTransaction(getProject(), () -> ShowIntentionActionsHandler.chooseActionAndInvoke(getFile(), getEditor(), action, action.getText())); UIUtil.dispatchAllInvocationEvents(); }