This looks pretty weird, do you think it'd be any cleaner if we had either a C-like global constant (BLOCK_FAILED) or a method (setStatusFailed()) to clarify?