2017-02-21 32 views
2

示例代碼:SonarQube假陽性在靜態方法「未使用私有方法應被刪除」

public static String foo(){ 
return bar(); 
} 

private static String bar(){ 
return ""; 
} 

SonarQube標記欄()函數爲未使用,但SonarLint(的IntelliJ,版本2.7.1.1640)工作正常。 我已經安裝了SonarQube(6.2)和最新版本的Java插件(4.5.0.8398)的最新版本,但仍然有這個問題 - 我認爲這個問題已修復? 這是一種迴歸bug嗎? 感謝您的幫助。

UPDATE:

上面的例子太瑣碎,我管理,以指定的問題:它看起來像傳遞給函數的原始參數的問題,例如,這是標記爲未使用:

public static String foo(SomeClass a) { 
    return bar(a.getChar()); 
    } 

    private static String bar(char a) { 
    return String.valueOf(a); 
    } 

如果我將硬編碼值傳遞給bar(像bar('a'))一切正常(甚至當我傳遞像bar(「string」.charAt(0))))。 SomeClass.getChar()返回'char',因此對於裝箱原語不是問題。

SOLUTION: as @Michael - SonarSource團隊建議,依賴關係字節碼存在問題。我禁用了teamcity Sonar runner插件,現在通過Gradle插件運行sonarqube。

+1

在SonarQube的某種支持論壇或bug追蹤器上詢問這個問題呢? – john16384

+1

無法用相同的配置重現。您是否確定在爲SonarQube執行分析時提供文件的字節碼? –

+0

約翰 - 你是對的,我應該也許我會把它作爲一個錯誤發送給SonarQube,但我想確定這不是我的錯誤。 @ Michael-SonarSourceTeam - 請看我的更新。 – szymonszymon

回答

-2

很多時候有一些問題,聲納服務器和聲納皮棉的同步,這是不是與這個單一的問題,它也被複制在其他一些問題一樣重複code.refer聲納服務器並嘗試解決

+1

「請參考聲納服務器並嘗試解決」是什麼意思?對我來說,這似乎更像是SonarQube分析的配置錯誤,而SonarLint自身表現良好。 –

相關問題