Есть ли правило Checkstyle, PMD или Findbugs, которое может найти следующую реализацию non-threadafe spring singleton?
private String helperVar;
public String getValue(String value) {
helperVar = value;
return convertValue();
}
private String convertValue() {
return helperVar.trim();
}
Я знаю, что этот пример ужасен, но это самый простой способ показать, что я имею в виду.
При выполнении метода getValue из bean за одно исполнение он будет работать нормально. Но при выполнении этого в многопользовательской среде это приведет к непредсказуемым ошибкам/поведению.
Есть ли способ найти эти вхождения без прохождения кода вручную? Есть ли какие-либо статические проверки кода, которые могли бы проверить это и каждый вариант его автоматически?