Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When using Eclipse with FindBugs can you mark a bug as not a bug and have it removed from the bug list?

FindBugs has found a potential bug in my code. But it is not a bug.

Is it possible to mark this occurrence as 'not a bug' AND have it removed from the bug list?

I have documented quite clearly why for each case it is not a bug.

For example. A class implements the comparable interface. it has the compareTo method. I have however not overridden the equals method.

FindBugs does not like this as the JavaDocs state that it is recommended that

(x.compareTo(y)==0) == (x.equals(y))

Although in my case the above condition is and always will be true.

like image 947
Ron Tuffin Avatar asked Oct 30 '08 08:10

Ron Tuffin


2 Answers

Instead of using filters, you can also use the SuppressWarnings annotation. You must use the annotation out of the findbugs package, meaning you either need an import or use the fully qualified name of it. This is because other than the SuppressWarnings from the JDK it has retention "Class", which is needed because findbugs operates on the compiled bytecode instead of source code.

Example:

@edu.umd.cs.findbugs.annotations.SuppressWarnings(
    value="EQ_COMPARETO_USE_OBJECT_EQUALS", 
    justification="because I know better")

There's one corner case where you probably should not be using the annotation: If your code is library code that ends up in a jar, that could be used by other projects and you're still on Java5. The reason for this is a bug in the JDK which crashes javac if the annotation is not in the classpath.

like image 107
WMR Avatar answered Oct 17 '22 09:10

WMR


Probably by adding a filter as parameter of findbugs

Match clauses can only match information that is actually contained in the bug instances

<Match>
   <Class name="com.foobar.MyClass" />
   <Method name="myMethod" />
   <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS" />
</Match>
like image 41
VonC Avatar answered Oct 17 '22 08:10

VonC