Пример кода: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), но все еще имею эту проблему - я думал, что эта проблема исправлена? Это какая-то ошибка регрессии? Спасибо за помощь.
UPDATE:
Выше пример был слишком тривиален, я смог указать проблему: она выглядит как проблема с примитивными аргументами, передаваемых функционировать, например, это помечается как неиспользуемые:
public static String foo(SomeClass a) {
return bar(a.getChar());
}
private static String bar(char a) {
return String.valueOf(a);
}
если я передаю hardcoded значение в bar (например, bar ('a')) все работает отлично (или даже когда я пропускаю что-то вроде bar ("string" .charAt (0))). SomeClass.getChar() возвращает 'char', поэтому это не проблема с примитивами бокса.
РЕШЕНИЕ: как @Michael - команда SonarSource, возникла проблема с байт-кодами зависимостей. Я отключил плагин Sonar runer и включил Sonarqube через плагин Gradle.
Как насчет того, чтобы просить об этом на каком-нибудь форуме поддержки или трекер-трекер на SonarQube? – john16384
Невозможно воспроизвести с той же конфигурацией. Вы уверены, что предоставляете байт-код ваших файлов при выполнении анализа для SonarQube? –
John - вы правы, я должен и, вероятно, отправлю это как ошибку в SonarQube, но я хотел убедиться, что это не моя ошибка. @ Michael-SonarSourceTeam - посмотрите мое обновление. – szymonszymon