One of the two UncaughtExceptionHandler implementations calls LOGGER.error(e)
. This only causes the toString
of the exception to be logged, not the stacktrace. The affected implementation is the one obfuscated as e
; the other implementation (f
) calls LOGGER.error(t.getName(), e)
and as such is not affected as it does log a message.
An easy would be to simply change it to LOGGER.error("Caught previously unhandled exception", e)
instead of having that message on a separate line. Log4j should already put it on a new line, so this should be the same behavior.
An example of this in the wild is MC-127452 (I haven't evaluated that ticket in any other way; it just does have the message logged without a stacktrace).
As far as I can tell, the relevant code was added in 18w06a.
This was fixed in 18w44a. 18w43c has the following (both cases, in
e
):while 18w44a has the following implementation:
I'm not sure why I added 18w50a to the list; it was fixed by that version.