JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.

If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.

If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.

CodeSonar® 9.2p0 CONFIDENTIAL CodeSecure Inc
Java

Java Support

This section describes the current state of CodeSonar support for the various Java versions.

All features supported: Java 1-19

CodeSonar parses and generates internal representation (IR) for all features from these standards; the analysis takes account of the generated IR.

Java 20

Java 20 does not introduce new permanent features, but does have two preview features.

Preview Feature: Not Parsed for Java 20
Record Patterns JEP 432 Second Preview.
Minimum specified framework for parsing: Java 21.
For information on current handling, see JEP 440.
Pattern Matching for switch JEP 433 Fourth Preview.
Minimum specified framework for parsing: Java 21.
For information on current handling, see JEP 441.

Java 21

Java 21 introduces two new permanent features, and has three preview features.

Parsed and partial internal representation (IR) generated
Record Patterns
Permanent
JEP 440 Using these will cause CodeSonar to issue false positive warnings of the following classes.
Parsed only
Pattern Matching for switch
Permanent
JEP 441
  • Pattern expressions and references do not contribute to code metrics.
  • Using the feature may cause some non-blocking exceptions to be recorded in the analysis log.
  • Some switch cases may be incorrectly identified as unreachable, causing CodeSonar to issue false positive warnings of various classes.
Preview Features: Not Parsed for Java 21
String Templates JEP 430 Preview.
Not parsed, regardless of specified framework.
Unnamed Patterns and Variables JEP 443 Preview.
Minimum specified framework for parsing: Java 22.
For information on current handling, see JEP 456.
Unnamed Classes and Instance Main Methods JEP 445 Preview.
Not parsed, regardless of specified framework.

Java 22

Java 22 introduces one new permanent feature, and has three preview features. CodeSonar parses all of these features, but generates internal representation (IR) for only one of them, and analysis checks do not fully account for any of them.

Parsed and full internal representation (IR) generated
Unnamed Variables & Patterns
Permanent
JEP 456 Unnamed variables and patterns are parsed but currently analyzed as classical named local variables. Using them will cause CodeSonar to issue a false positive Unused Value: Variable (Java) warning for each use.
Preview Features: Not Parsed for Java 22
Statements before super(...) JEP 447 Preview.
Not parsed, regardless of specified framework.
String Templates JEP 459 Second Preview.
Not parsed, regardless of specified framework.
Implicitly Declared Classes and Instance Main Methods JEP 463 Second Preview.
 

To report problems with this documentation, please visit https://support.codesecure.com/.