Skip to content

false positive RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT #872

@damnms

Description

@damnms
Mockito.verify(converter, times(1)).convert(isA(SFDLBean.class));

This code leads to:

Return value of method without side effect is ignored
This code calls a method and ignores the return value. However our analysis shows that the method (including its implementations in subclasses if any) does not produce any effect other than return value. > Thus this call can be removed.
We are trying to reduce the false positives as much as possible, but in some cases this warning might be wrong. Common false-positive cases include:

  • The method is designed to be overridden and produce a side effect in other projects which are out of > the scope of the analysis.
  • The method is called to trigger the class loading which may have a side effect.
  • The method is called just to get some exception.
    If you feel that our assumption is incorrect, you can use a @CheckReturnValue annotation to instruct SpotBugs that ignoring the return value of this method is acceptable.

Bug kind and pattern: RV - RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT

The verify method does effect the code - it breaks the unit test if the method is not called 1 time. Its more or less like an assert.
I will workaround this now with @CheckReturnValue but for me, this is a very common use case. Is it possible to fix that in spotbugs? Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions