Оператор IF просто не работает

Я пишу приложение для Android, которое делает много вещей. Недавно я провел рефакторинг своего кода, чтобы он имел лучшую структуру, но внезапно у меня возникла очень странная проблема.

handleRequest(String str)
{
    boolean foo = executeCommand(str);
    this.publishProgress("FOO1: " + foo);

    if (foo == false);
    {
        this.publishProgress("FOO2: " + foo);
        sendString("Failed to execute: " + str);
    }

    this.publishProgress("FOO3: " + foo);
    sendEOM();
}

Приведенный выше код должен выполнить команду и сохранить «foo», если команда была выполнена правильно. Этот код находится внутри потока Android AsyncTask (), поэтому я использую «publishProgress», чтобы показать тост.

Я листал отладчиком и FOO верно! Тосты также показывают, что FOO верно на протяжении всего пути. Тем не менее, он переходит внутрь блока IF и выполняет его тоже. Я никогда не видел этого раньше, я думаю, что это проблема с Java. Я прошел через функцию «executeCommand», и похоже, что она тоже пропускает операторы возврата.

Я запустил код на виртуальном устройстве и на реальном, и они оба делают это.

Любые идеи? Я здесь в полной растерянности.

9
задан Blackbelt 18 July 2012 в 07:11
поделиться