Findbug ссылается на потенциальную проблему с многопоточностью.В многопоточной среде ваш синглтон может быть создан несколько раз с вашим текущим кодом.
Здесь много читается , но это поможет объяснить.
Состояние гонки здесь на if check
.При первом вызове поток попадет в if check
, создаст экземпляр и назначит его экземпляру.Но существует вероятность, что другой поток станет активным между if check
и созданием / назначением экземпляра.Этот поток также может передавать if check
, потому что назначение еще не произошло.Следовательно, будет создано два (или более, если будет добавлено больше потоков) экземпляра, и ваши потоки будут иметь ссылки на разные объекты.