In my code I have something like this:
if (a.foo() == b.foo()){ ... something ... }
where foo()
returns BigInteger
. I think FindBugs should flag this as the bug
RC: Suspicious reference comparison (RC_REF_COMPARISON)
but it doesn't. I have tried to retype the code to something like this:
BigInteger c = a.foo();
BigInteger d = b.foo();
if(c == d){ ... something ...}
but that has no effect. I have tried several configuration settings on which bugs to find with the same false negative result. I have a lot of code to validate and I need to find all of these bugs. What setting am I missing?
Probably FindBugs has a list of classes it knows should not be compared as references, and BigInteger is not on that list.
You are correct that they should not be compared as references, so BigInteger should be on the list. In general, FindBugs can't know whether it is okay for an arbitrary class.