diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java index 80fc6f08bcd3..7a1daea8dd16 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java @@ -407,7 +407,7 @@ public class NullableStuffInspectionBase extends BaseJavaBatchLocalInspectionToo final PsiClass containingClass = field.getContainingClass(); final PsiMethod setter = PropertyUtil.findPropertySetter(containingClass, propName, isStatic, false); - if (setter != null && setter.isPhysical()) { + if (setter != null && setter.isPhysical() && PropertyUtil.isSimpleSetter(setter)) { final PsiParameter[] parameters = setter.getParameterList().getParameters(); assert parameters.length == 1 : setter.getText(); final PsiParameter parameter = parameters[0]; diff --git a/java/java-tests/testData/inspection/nullableProblems/NonTrivialGettersSetters.java b/java/java-tests/testData/inspection/nullableProblems/NonTrivialGettersSetters.java new file mode 100644 index 000000000000..68d6330496bd --- /dev/null +++ b/java/java-tests/testData/inspection/nullableProblems/NonTrivialGettersSetters.java @@ -0,0 +1,16 @@ +import org.jetbrains.annotations.NotNull; + +class Foo { + private static final Long DEFAULT_ID = -1L; + + @NotNull + private Long id = DEFAULT_ID; + + public Long getId() { + return id > 0 ? id : 42; + } + + public void setId(Long id) { + this.id = id != null ? id : DEFAULT_ID; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/NullableStuffInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/NullableStuffInspectionTest.java index cd4720760097..a0a1d2cff0a1 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/NullableStuffInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/NullableStuffInspectionTest.java @@ -98,6 +98,8 @@ public class NullableStuffInspectionTest extends LightCodeInsightFixtureTestCase public void testNotNullAnnotationChecksInChildClassMethods() { doTest(); } public void testGetterSetterProblems() { doTest(); } + public void testNonTrivialGettersSetters() { doTest(); } + public void testOverriddenMethods() { myInspection.REPORT_ANNOTATION_NOT_PROPAGATED_TO_OVERRIDERS = true; doTest();