Don't use this extra finally block. It will just give you a null pointer exception instead of a clean failure on callProcedure success.
Instead, revert back to test the messages in the catch blocks and call "fail" if you successfully return from the callProcedure.