If an application registered shutdown hook "hangs", it will effectively hang the shutdown / termination of a Java Virtual Machine.
Should Oracle Tools, in particular the Java Application Launcher request a Java Virtual Machine to shutdown (using System.exit(...)) due to the parent application terminating / the child application becoming orphaned, poorly written / hanging shutdown hooks by child application may prevent it from terminating.
Instead of Oracle Tools using System.exit(...) to request the termination of a Java Virtual Machine (which causes shutdown hooks to be called), it instead should use Runtime.halt(...).
If an application registered shutdown hook "hangs", it will effectively hang the shutdown / termination of a Java Virtual Machine.
Should Oracle Tools, in particular the Java Application Launcher request a Java Virtual Machine to shutdown (using System.exit(...)) due to the parent application terminating / the child application becoming orphaned, poorly written / hanging shutdown hooks by child application may prevent it from terminating.
Instead of Oracle Tools using System.exit(...) to request the termination of a Java Virtual Machine (which causes shutdown hooks to be called), it instead should use Runtime.halt(...).