From 577ace5bb2d2e1b529f2db5f2f858271cba6b5d1 Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Fri, 1 Jul 2016 16:50:18 +0300 Subject: [PATCH] AddMethodQualifierFix prevent IOOBE in getText() --- .../impl/quickfix/AddMethodQualifierFix.java | 15 +++++++++------ .../src/messages/QuickFixBundle.properties | 1 + 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodQualifierFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodQualifierFix.java index 8c13e6f65dab..08f39c78f9f4 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodQualifierFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodQualifierFix.java @@ -51,8 +51,11 @@ public class AddMethodQualifierFix implements IntentionAction { @Override public String getText() { final List candidates = getOrFindCandidates(); + if (candidates.isEmpty()) { + return getFamilyName(); + } String text = QuickFixBundle.message("add.method.qualifier.fix.text", candidates.size() > 1 ? "" : candidates.get(0).getName()); - if (myCandidates.size() > 1) { + if (candidates.size() > 1) { text += "..."; } return text; @@ -61,7 +64,7 @@ public class AddMethodQualifierFix implements IntentionAction { @NotNull @Override public String getFamilyName() { - return getText(); + return QuickFixBundle.message("add.method.qualifier.fix.family"); } @Override @@ -108,7 +111,7 @@ public class AddMethodQualifierFix implements IntentionAction { @TestOnly public List getCandidates() { - return myCandidates; + return getOrFindCandidates(); } @Override @@ -116,8 +119,8 @@ public class AddMethodQualifierFix implements IntentionAction { if (!FileModificationService.getInstance().preparePsiElementsForWrite(file)) { return; } - if (myCandidates.size() == 1 || UNIT_TEST_MODE) { - qualify(myCandidates.get(0), editor); + if (getOrFindCandidates().size() == 1 || UNIT_TEST_MODE) { + qualify(getOrFindCandidates().get(0), editor); } else { chooseAndQualify(editor); @@ -126,7 +129,7 @@ public class AddMethodQualifierFix implements IntentionAction { private void chooseAndQualify(final Editor editor) { final BaseListPopupStep step = - new BaseListPopupStep(QuickFixBundle.message("add.qualifier"), myCandidates) { + new BaseListPopupStep(QuickFixBundle.message("add.qualifier"), getOrFindCandidates()) { @Override public PopupStep onChosen(final PsiVariable selectedValue, final boolean finalChoice) { if (selectedValue != null && finalChoice) { diff --git a/resources-en/src/messages/QuickFixBundle.properties b/resources-en/src/messages/QuickFixBundle.properties index 229969706a68..2250faf241f1 100644 --- a/resources-en/src/messages/QuickFixBundle.properties +++ b/resources-en/src/messages/QuickFixBundle.properties @@ -269,6 +269,7 @@ add.missing.annotation.parameters.fix=Add missing annotation parameters - {0} add.missing.annotation.single.parameter.fix=Add missing annotation parameter ''{0}'' add.method.qualifier.fix.text=Add qualifier {0} to method +add.method.qualifier.fix.family=Add method qualifier collection.addall.can.be.replaced.with.constructor.fix.options.title=Classes to check collection.addall.can.be.replaced.with.constructor.fix.description=''{0}()'' method can be replaced with parametrized constructor