Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Runtime.exit() is the typical way of exiting a program. According to the Java API [API 2014], Runtime.exit():

terminates the currently running Java virtual machine by initiating its shutdown sequence. This method never returns normally. The argument serves as a status code; by convention, a nonzero status code indicates abnormal termination.

The virtual machine's shutdown sequence consists of two phases. In the first phase all registered shutdown hooks, if any, are started in some unspecified order and allowed to run concurrently until they finish. In the second phase all uninvoked finalizers are run if finalization-on-exit has been enabled. Once this is performed the virtual machine halts.

If this method is invoked after the virtual machine has begun its shutdown sequence, then if shutdown hooks are being run, this method will block indefinitely. If shutdown hooks have already been run and on-exit finalization has been enabled, then this method halts the virtual machine with the given status code if the status is nonzero; otherwise, it blocks indefinitely.

The System.exit() method is the conventional and convenient means of invoking this method.

...

Rule

Severity

Likelihood

Remediation Cost

Priority

Level

FIO14-J

Medium

Likely

Medium

P12

L1

Automated Detection

ToolVersionCheckerDescription
Parasoft Jtest
Include Page
java:Parasoft_V
java:Parasoft_V
OPT.CIO, OPT.CCR, OPT.CRWDImplemented

Related Guidelines

...

[API 2014]

Class Runtime.exit() 

[ISO/IEC TR 24772:2010]

Section 6.46, "Termination Strategy [REU]"

 

...

Image Modified Image Modified Image Modified