I've reviewed your patch.
First, I have a question. For what purpose does calling code require access to the ShutdownServiceThread? If it is so the calling code can can unregister the shutdown hook, then I think it would be better if ApplicationRegistry itself took on this responsibility. I think ApplicationRegistry should register the shutdown hook on initialisation (initialise()), and remove the shutdown hook when the remove is called (currently remove/removeAll()).
I am currently working in ApplicationRegistry (
QPID-3026) and could incorporate this improvement too. Please let me know your thoughts.
Kind regards Keith Wall.