There is one situation where the result looks odd. The flowing code is marked with this finding:

if (foo.getBar() != null)
{
   result = foo.getBar().toString();
}

Reason for that is that the finder does not assume that the value of foo.getBar() never changes. So this (possible) false positive can be fixed by changing the code like the following:

final Street bar = foo.getBar()
if (bar != null)
{
   result = bar.toString();
}

There are also several utility methods available that allow to avoid this situation.