@Override public ProgramState checkPostStatement(CheckerContext context, Tree syntaxNode) { if (syntaxNode.is(Tree.Kind.SWITCH_STATEMENT, Tree.Kind.THROW_STATEMENT) && context.getConstraintManager().isNull(context.getState(), context.getState().peekValue())) { NullDereferenceIssue issue = new NullDereferenceIssue(context.getNode(), context.getState().peekValue(), syntaxNode); detectedIssues.peek().add(issue); context.createSink(); return context.getState(); } List<ProgramState> programStates = setNullConstraint(context, syntaxNode); for (ProgramState programState : programStates) { context.addTransition(programState); } return context.getState(); }
@Override public ProgramState checkPostStatement(CheckerContext context, Tree syntaxNode) { if (syntaxNode.is(Tree.Kind.SWITCH_STATEMENT, Tree.Kind.THROW_STATEMENT) && context.getConstraintManager().isNull(context.getState(), context.getState().peekValue())) { NullDereferenceIssue issue = new NullDereferenceIssue(context.getNode(), context.getState().peekValue(), syntaxNode); detectedIssues.peek().add(issue); context.createSink(); return context.getState(); } List<ProgramState> programStates = setNullConstraint(context, syntaxNode); for (ProgramState programState : programStates) { context.addTransition(programState); } return context.getState(); }
@Override public ProgramState checkPostStatement(CheckerContext context, Tree syntaxNode) { if (syntaxNode.is(Tree.Kind.SWITCH_STATEMENT) && context.getConstraintManager().isNull(context.getState(), context.getState().peekValue())) { context.reportIssue(syntaxNode, this, "NullPointerException might be thrown as '" + SyntaxTreeNameFinder.getName(syntaxNode) + "' is nullable here"); context.createSink(); return context.getState(); } List<ProgramState> programStates = setNullConstraint(context, syntaxNode); for (ProgramState programState : programStates) { context.addTransition(programState); } return context.getState(); }