From b892f425535ef2e01ba77dd1bcbd30013a4a6eb0 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Tue, 10 Jul 2018 13:12:39 +0700 Subject: [PATCH] CreatePropertyAction: prevent from NPE when calling getText() on non-available action (useful in test reporting) --- .../intellij/lang/java/actions/CreateGetterWithFieldAction.kt | 2 +- .../src/com/intellij/lang/java/actions/CreatePropertyAction.kt | 2 +- .../com/intellij/lang/java/actions/CreatePropertyActionBase.kt | 2 ++ .../intellij/lang/java/actions/CreateSetterWithFieldAction.kt | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/lang/java/actions/CreateGetterWithFieldAction.kt b/java/java-impl/src/com/intellij/lang/java/actions/CreateGetterWithFieldAction.kt index c0c47d42b313..33f0e00d9126 100644 --- a/java/java-impl/src/com/intellij/lang/java/actions/CreateGetterWithFieldAction.kt +++ b/java/java-impl/src/com/intellij/lang/java/actions/CreateGetterWithFieldAction.kt @@ -26,7 +26,7 @@ internal class CreateGetterWithFieldAction(target: PsiClass, request: CreateMeth } override fun getText(): String { - return message("create.read.only.property.from.usage.full.text", propertyInfo.first, getNameForClass(target, false)) + return message("create.read.only.property.from.usage.full.text", getPropertyName(), getNameForClass(target, false)) } override fun createRenderer(project: Project) = object : PropertyRenderer(project, target, request, propertyInfo) { diff --git a/java/java-impl/src/com/intellij/lang/java/actions/CreatePropertyAction.kt b/java/java-impl/src/com/intellij/lang/java/actions/CreatePropertyAction.kt index e9eab7f3e0cf..ef426aa1d6b9 100644 --- a/java/java-impl/src/com/intellij/lang/java/actions/CreatePropertyAction.kt +++ b/java/java-impl/src/com/intellij/lang/java/actions/CreatePropertyAction.kt @@ -41,7 +41,7 @@ internal class CreatePropertyAction(target: PsiClass, request: CreateMethodReque return target.findMethodsByName(getAccessorName(propertyName, counterPart), false).isEmpty() } - override fun getText(): String = message("create.property.from.usage.full.text", propertyInfo.first, getNameForClass(target, false)) + override fun getText(): String = message("create.property.from.usage.full.text", getPropertyName(), getNameForClass(target, false)) override fun createRenderer(project: Project): PropertyRenderer = object : PropertyRenderer(project, target, request, propertyInfo) { diff --git a/java/java-impl/src/com/intellij/lang/java/actions/CreatePropertyActionBase.kt b/java/java-impl/src/com/intellij/lang/java/actions/CreatePropertyActionBase.kt index 7ba9341b4f56..f945cadbcc18 100644 --- a/java/java-impl/src/com/intellij/lang/java/actions/CreatePropertyActionBase.kt +++ b/java/java-impl/src/com/intellij/lang/java/actions/CreatePropertyActionBase.kt @@ -45,6 +45,8 @@ internal abstract class CreatePropertyActionBase( protected val propertyInfo: Pair get() = requireNotNull(doGetPropertyInfo()).toNotNull() + internal fun getPropertyName() : String? = doGetPropertyInfo()?.first + override fun getRenderData() = JvmActionGroup.RenderData { propertyInfo.first } override fun invoke(project: Project, editor: Editor?, file: PsiFile?) { diff --git a/java/java-impl/src/com/intellij/lang/java/actions/CreateSetterWithFieldAction.kt b/java/java-impl/src/com/intellij/lang/java/actions/CreateSetterWithFieldAction.kt index a84751d6d4c9..108c773146b6 100644 --- a/java/java-impl/src/com/intellij/lang/java/actions/CreateSetterWithFieldAction.kt +++ b/java/java-impl/src/com/intellij/lang/java/actions/CreateSetterWithFieldAction.kt @@ -26,7 +26,7 @@ internal class CreateSetterWithFieldAction(target: PsiClass, request: CreateMeth } override fun getText(): String { - return message("create.write.only.property.from.usage.full.text", propertyInfo.first, getNameForClass(target, false)) + return message("create.write.only.property.from.usage.full.text", getPropertyName(), getNameForClass(target, false)) } override fun createRenderer(project: Project) = object : PropertyRenderer(project, target, request, propertyInfo) {