diff --git a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll index 786207d3486..36ad96c497f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll +++ b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll @@ -141,8 +141,6 @@ private ControlFlowNode varDereference(SsaVariable v, VarAccess va) { private ControlFlowNode ensureNotNull(SsaVariable v) { result = varDereference(v, _) or - result.asStmt().(AssertStmt).getExpr() = nullGuard(v, true, false) - or exists(AssertTrueMethod m | result.asCall() = m.getACheck(nullGuard(v, true, false))) or exists(AssertFalseMethod m | result.asCall() = m.getACheck(nullGuard(v, false, false))) diff --git a/java/ql/lib/semmle/code/java/frameworks/Assertions.qll b/java/ql/lib/semmle/code/java/frameworks/Assertions.qll index e7f86b9bfd8..e1601c854e4 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Assertions.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Assertions.qll @@ -110,11 +110,17 @@ predicate assertFail(BasicBlock bb, ControlFlowNode n) { ( exists(AssertTrueMethod m | n.asExpr() = m.getACheck(any(BooleanLiteral b | b.getBooleanValue() = false)) - ) or + ) + or exists(AssertFalseMethod m | n.asExpr() = m.getACheck(any(BooleanLiteral b | b.getBooleanValue() = true)) - ) or - exists(AssertFailMethod m | n.asExpr() = m.getACheck()) or - n.asStmt().(AssertStmt).getExpr().(BooleanLiteral).getBooleanValue() = false + ) + or + exists(AssertFailMethod m | n.asExpr() = m.getACheck()) + or + exists(AssertStmt a | + n.asExpr() = a.getExpr() and + a.getExpr().(BooleanLiteral).getBooleanValue() = false + ) ) }