Description
The QueueRunner.run() method calls SimpleAMQQueue.processQueue(...) method within a try/catch block. If this threw an exception that was not caught then the state of the QueueRunner is never set back to IDLE or SCHEDULED.
The same pattern is present in the SubFlushRunner.run().
The code at the end of the method should be moved into the finally block to prevent this from happening.