Java


JAVA.DEBUG.CALL : Debug Call (Java)

Summary

A call to a method that should not be used in production code.

For example, calls to System.exit() should not be used in production code, as they would disrupt the availability of your service.

Some operations should not be performed in production code, since they have no effect or have unpredictable effects, or since they might compromise the availability or security of your system.

Properties

Class Name Debug Call (Java)
Significance reliability
Mnemonic JAVA.DEBUG.CALL
Categories
CWE CWE:382 J2EE Bad Practices: Use of System.exit()
  CWE:489 Active Debug Code
CERT-Java CERT-Java:ERR09-J Do not allow untrusted code to terminate the JVM
Availability Available for Java only.
Enabling Checks for this warning class are enabled by default. To disable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += discard class="Debug Call (Java)"

Example

import com.juliasoft.julia.extraction.EntryPoint;

public class InadequateCalls {
  public @EntryPoint void check(int k) {
      if (k <= 0)
          System.exit(-1);       // Debug Call (Java) warning issued here 
      else
          System.out.println(k); // Debug Warning (Java) warning issued here 
  }
}

In this example, the programmer should signal the unusual situation in other ways, for instance by throwing an exception or by showing a dialog to the user.

Resolution

Verify if the operation is adequate for production code. Remove it or transform it if that is not the case.

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.