2014-12-15 4 views
8

Я добавил следующее в FindBugs exclude.xml файлFindBugs не исключая методы в нашей Java приложения

<Match> 
    <Class name="com.ebay.kernel.service.invocation.SvcInvocationConfig" /> 
    <Method name="getConnectionConfig" /> 
    <Bug pattern="IS2_INCONSISTENT_SYNC" /> 
</Match> 

код, который должен быть проигнорирован

public ConnectionConfig getConnectionConfig() { 
    return m_connectionConfig; 
} 

потому что FindBugs сообщает, что

m_connectionConfig suffers from (inconsistent synchronization) BUG - IS2_INCONSISTENT_SYNC 

Но почему-то мои поисковые машины не игнорируются.

и когда я следующий -

<Match> 
    <Class name="com.ebay.kernel.service.invocation.SvcInvocationConfig" /> 
    <Bug pattern="IS2_INCONSISTENT_SYNC" /> 
</Match> 

The FindBugs становится игнорируется для всего класса, но как только я представлю

<Method name="getConnectionConfig"> 

тег между ними, FindBugs перестает получать игнорироваться для этого метода ,

Может кто-нибудь помочь мне понять, почему?

+0

Что вы используете для запуска FindBugs (цель Maven, Gradle и т.д.)? Вы знаете, используется ли ваш файл 'findbugsExclude.xml', когда он запущен? Может потребоваться включить логику сборки. – mkobit

+0

Моя кишка говорит, что вы должны попробовать включить элемент Match для поля. Мой мозг говорит мне, что вы должны стараться быть более грубыми (например, сопоставлять только ошибку), чтобы устранить проблемы с опечатками/предметами. Возможно, вы захотите полностью игнорировать ошибку, поскольку она может дать вам [ложные срабатывания] (http://findbugs.sourceforge.net/bugDescriptions.html#IS2_INCONSISTENT_SYNC). – Foosh

+0

Файл findbugsExclude.xml отлично работает, я могу исключить классы, пакеты, а также поля, но я не могу исключить методы. –

ответ

3

Предупреждение IS2_INCONSISTENT_SYNC выдается на элемент данных (поле) в соответствии с его обычаями различными способами, конструкторами, статическими блоками и т. Д., А не на самом методе, поэтому вы не можете игнорировать его с помощью элемента <Method> ,

Вместо этого, вы можете использовать <Field> элемент:

<Match> 
    <Class name="com.ebay.kernel.service.invocation.SvcInvocationConfig" /> 
    <Field name="m_connectionConfig" /> 
    <Bug pattern="IS2_INCONSISTENT_SYNC" /> 
</Match> 
+0

Он работает на уровне поля. Но я действительно хотел игнорировать findbugs для этого поля (m_connectionConfig) только в этом методе (getConnectionConfig()) и не везде? Дайте мне знать, есть ли способ достичь этого? –

+0

@ user1675173 Я не знаю, как исключить это предупреждение только для одного метода, извините. – Mureinik

+0

Anyways Спасибо за столь необходимую помощь !!! –