javaandroideclipseadtfindbugs

Eclipse+FindBugs - exclude filter file doesn't work


I'm using Windows and Eclipse 3.7 Classic with ADT plugin for Android development.

I've just installed FindBugs and it found a bug in auto-generated R.java class.

I want to exclude this class from FindBugs checks.

I've found that I can define exclude filters for FindBugs in an xml file, so I've created a file D:\Projects\eclipse\FindBugsExculde.xml with text:

<FindBugsFilter>
  <Match>
    <Class name="com.android.demo.notepad3.R$attr" />
  </Match>
</FindBugsFilter>

I've added this file to Eclipse → Window → Preferences → Java → FindBugs → Filter files → Add... button near the "Exclude filter files" section.

But when I right-click on my project and select Find Bugs → Find Bugs I still see the error

The class name com.android.demo.notepad3.R$attr doesn't start with an upper case letter.

I have even tried to replace:

<Class name="com.android.demo.notepad3.R$attr" />

with:

<Class name="~.*" />

but still the error is there.

I tried to restart Eclipse - no luck. I even thought that maybe there is a Bug in FindBugs so it doesn't use the file specified but Procmon.exe from SysinternalsSuite shows that it does use it each time I execute FindBugs:

ProcessName Operation   Path                                    Result
javaw.exe   QueryOpen   D:\Projects\eclipse\FindBugsExculde.xml SUCCESS
javaw.exe   QueryOpen   D:\Projects\eclipse\FindBugsExculde.xml SUCCESS
javaw.exe   CreateFile  D:\Projects\eclipse\FindBugsExculde.xml SUCCESS
javaw.exe   CreateFile  D:\Projects\eclipse\FindBugsExculde.xml SUCCESS
javaw.exe   QueryFileInternalInformationFile D:\Projects\eclipse\FindBugsExculde.xml SUCCESS
javaw.exe   CloseFile   D:\Projects\eclipse\FindBugsExculde.xml SUCCESS
javaw.exe   ReadFile    D:\Projects\eclipse\FindBugsExculde.xml SUCCESS
javaw.exe   CloseFile   D:\Projects\eclipse\FindBugsExculde.xml SUCCESS

What am I doing wrong?


Solution

  • Following the directives from Jenkins I created a findbugs-exclude.xml in my android workspace and added it via Eclipse → Window → Preferences → Java → FindBugs → Filter files → Add... button near the "Exclude filter files" section to findbugs. My first error was that I ticked the first checkbox (the include filter :-) section).

    Then I manually started findbugs and everything was ok. The content of my file is:

    <?xml version="1.0" encoding="UTF-8"?>
    <FindBugsFilter>
        <Match>
            <Class name="~.*\.R\$.*"/>
        </Match>
        <Match>
            <Class name="~.*\.Manifest\$.*"/>
        </Match>
    </FindBugsFilter>
    

    I am using eclipse 3.7.1 and findbugs 1.3.9. Hope that helps.