Почему в java.security.AccessControlContext есть избыточная переменная debugInit?
Я проходил через java.security.AccessControlContext и обнаружил следующий фрагмент кода:
private static boolean debugInit = false;
private static Debug debug = null;
static Debug getDebug()
{
if (debugInit)
return debug;
else {
if (Policy.isSet()) {
debug = Debug.getInstance("access");
debugInit = true;
}
return debug;
}
}
Вопрос: зачем нам дополнительная переменная debugInit
, когда мы можем просто проверить if (debug == null)
а также getInstance()
как ниже:
static Debug getDebug()
{
if (debug == null && Policy.isSet()) {
debug = Debug.getInstance("access");
}
return debug;
}
Я что-то упустил или есть какая-то конкретная причина для использования дополнительной переменной debugInit
(который не упоминается где-либо еще)?