From dd9d0a92161aa0362a5bccec86a9cdc849eb333b Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 1 Mar 2012 16:39:28 +0400 Subject: [PATCH] don't keep hard references to PSI in CreatePropertyFix --- .../lang/properties/references/CreatePropertyFix.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/properties/src/com/intellij/lang/properties/references/CreatePropertyFix.java b/plugins/properties/src/com/intellij/lang/properties/references/CreatePropertyFix.java index b5bf6fa9206d..b875f857999b 100644 --- a/plugins/properties/src/com/intellij/lang/properties/references/CreatePropertyFix.java +++ b/plugins/properties/src/com/intellij/lang/properties/references/CreatePropertyFix.java @@ -29,6 +29,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; +import com.intellij.psi.PsiAnchor; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.util.IncorrectOperationException; @@ -40,7 +41,7 @@ import java.util.List; public class CreatePropertyFix implements IntentionAction, LocalQuickFix { private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.i18n.I18nizeQuickFix"); - private final PsiElement myElement; + private final PsiAnchor myElement; private final String myKey; private final List myPropertiesFiles; @@ -51,7 +52,7 @@ public class CreatePropertyFix implements IntentionAction, LocalQuickFix { } public CreatePropertyFix(PsiElement element, String key, final List propertiesFiles) { - myElement = element; + myElement = element == null ? null : PsiAnchor.create(element); myKey = key; myPropertiesFiles = propertiesFiles; } @@ -79,11 +80,11 @@ public class CreatePropertyFix implements IntentionAction, LocalQuickFix { } public boolean isAvailable(@NotNull Project project, @Nullable Editor editor, @Nullable PsiFile file) { - return myElement.isValid(); + return myElement != null && myElement.retrieve() != null; } public void invoke(@NotNull final Project project, @Nullable Editor editor, @NotNull PsiFile file) { - invokeAction(project, file, myElement, myKey, myPropertiesFiles); + invokeAction(project, file, myElement.retrieve(), myKey, myPropertiesFiles); } @Nullable