diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronized.java b/core/src/main/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronized.java index 5d7931857d4..f46a0859636 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronized.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronized.java @@ -121,7 +121,8 @@ public Boolean visitBlock(BlockTree tree, Void unused) { @Override public Boolean visitReturn(ReturnTree tree, Void unused) { ExpressionTree expression = tree.getExpression(); - if (constantExpressions.constantExpression(expression, state).isPresent()) { + if (expression == null + || constantExpressions.constantExpression(expression, state).isPresent()) { return true; } return scan(tree.getExpression(), null); diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronizedTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronizedTest.java index 1785d4de1bf..ce97355f5ff 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronizedTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/UnsynchronizedOverridesSynchronizedTest.java @@ -157,6 +157,11 @@ public void ignoreEmptyOverride() { " super.f();", " }", " }", + " class D extends Lib {", + " public void f() {", + " return;", + " }", + " }", "}") .doTest(); }