The ExceptionUtils class does not appear to be thread-safe:
- CAUSE_METHOD_NAMES is not final, so may not be visible to all threads
- addCauseMethodName() and removeCauseMethodName() can update CAUSE_METHOD_NAMES but are not synch.
- all accesses to CAUSE_METHOD_NAMES probably need to be synchronised
The documentation does not state whether or not the class is thread-safe, but given that it only has static methods it does not make any sense unless it is thread-safe.