Почему в 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 (который не упоминается где-либо еще)?

0 ответов

Другие вопросы по тегам