It's a custom class. Basically, it's just a wrapper around the InitialContext, with some cache to avoid useless requests.
We never solved this problem, but we managed to track all errors and use a custom logging system to trace every message sent and read from/to the Queue :)