For diagnostic purposes I sometimes need to store the call stack that lead to a given state transition (such as granting a lock, committing a transaction, etc.) so that when something goes wrong later I can find out who originally triggered the state transition.
Currently, the only way I am aware of to retrieve the call stack looks like the following code snippet, which I consider terribly ugly:
StackTraceElement[] cause; try { throw new Exception(); } catch (Exception e) { cause = e.getStackTrace(); }
Does somebody know of a better way to accomplish this?
I think you can get the same thing with: