If an uncaught exception happen, you may end up with java.lang.RuntimeException: Widget disposed too early!
exception:
This is usually caused by one of the other exceptions, especially on close, and often times the "disposed to early" errors are listed before the exception that caused them. i.e.
- workbench is closing
- one part thows an error that can't be caught.
- all the following parts aren't closed, and so generate this error
- the error that cause the problem percolates up to the top of the
stack and is printed out.
In your case, I am not sure how it would affect your Listener, so a shutdown hook might be a fail-safe, provided it still can access resources to dispose (which may not be always the case).