Hosted by:
SourceForge

wrapper.disable_shutdown_hook Property
wrapper.disable_shutdown_hook Property
Configuration Property Overview
wrapper.disable_shutdown_hook

Disable detection of calls to System.exit(). If disabled, calls to System.exit() will be treated as if the JVM had crashed and the Service will be restarted.

The Wrapper registers a shutdown hook by default. If an application ever calls System.exit() rather than calling WrapperManager.stop() to stop the service, then the Wrapper will correctly shutdown the server.

You may wish to disable the shutdown hook for a number of reasons.

If an application contains code which sometimes fails and calls System.exit(), this property can be useful to make sure that the server comes back up. In most cases however, the wrapper.on_exit.<n> is better suited for resolving this problem.

Example:
wrapper.disable_shutdown_hook=TRUE

WARNING

When the Wrapper detects that System.exit() has been called, it will call the stop() method on your application if it implements the WrapperListener method. You must be careful that your application does not call System.exit() again or call the dispose() method on an AWT frame or window. Either one of these actions will result in a deadlock when called from within a ShutdownHook thread due to the way Java has implemented these methods. If either of these cases can not be avoided, then the shutdown hook should be disabled.

If you have control over whether the System.exit() or dispose() methods are called, you may be able to make use of the WrapperManager.hasShutdownHookBeenTriggered() method to avoid the deadlock issue.

For more information on the AWT deadlock bug, see the full description of bug #4712342 on Sun's site.

by Leif Mortenson

last modified: