diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java index 1c9bc6f99343..d94713c4e7e4 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java @@ -175,6 +175,7 @@ public class InplaceIntroduceConstantPopup extends AbstractInplaceIntroduceField protected boolean performRefactoring() { JavaRefactoringSettings.getInstance().INTRODUCE_CONSTANT_MOVE_TO_ANOTHER_CLASS = myMoveToAnotherClassCb.isSelected(); if (myMoveToAnotherClassCb.isSelected()) { + myEditor.putUserData(INTRODUCE_RESTART, true); ApplicationManager.getApplication().invokeLater(new Runnable() { @Override public void run() { @@ -190,7 +191,15 @@ public class InplaceIntroduceConstantPopup extends AbstractInplaceIntroduceField } } finally { + myEditor.putUserData(INTRODUCE_RESTART, false); myEditor.putUserData(ACTIVE_INTRODUCE, null); + releaseResources(); + if (myLocalMarker != null) { + myLocalMarker.dispose(); + } + if (myExprMarker != null) { + myExprMarker.dispose(); + } } } }); diff --git a/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/InplaceVariableIntroducer.java b/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/InplaceVariableIntroducer.java index db458a9b5b26..8d7d0c769521 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/InplaceVariableIntroducer.java +++ b/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/InplaceVariableIntroducer.java @@ -212,8 +212,7 @@ public abstract class InplaceVariableIntroducer extends In } protected void releaseIfNotRestart() { - final Boolean isRestart = myEditor.getUserData(INTRODUCE_RESTART); - if (isRestart == null || !isRestart.booleanValue()) { + if (!isRestart()) { releaseResources(); } } @@ -222,8 +221,7 @@ public abstract class InplaceVariableIntroducer extends In public void finish(boolean success) { super.finish(success); if (myBalloon != null) { - final Boolean isRestart = myEditor.getUserData(INTRODUCE_RESTART); - if (isRestart == null || !isRestart.booleanValue()) { + if (!isRestart()) { myBalloon.hide(); } }