Summary
ToolchainMojo.execute() contains a null check on the toolchains field that is annotated with @Parameter(required = true). Maven enforces required parameters before the mojo executes, making this check dead code.
Location
ToolchainMojo.java:58-61
https://github.com/apache/maven-toolchains-plugin/blob/master/src/main/java/org/apache/maven/plugins/toolchain/ToolchainMojo.java#L58-L61
Code
@Parameter(required = true)
private ToolchainsRequirement toolchains;
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
if (toolchains == null) {
// should not happen since parameter is required...
getLog().warn("No toolchains requirements configured.");
return;
}
// ...
}
Problem
@Parameter(required = true) means Maven will fail the build with an error if the toolchains configuration is not provided
- The null check guard is unreachable because execution never reaches the mojo if a required parameter is missing
- The comment
// should not happen since parameter is required... confirms the developer knew this was dead code
- If it did somehow execute, silently returning with just a warning is the wrong behavior for a missing required config
Impact
Dead code increases maintenance burden and gives a false impression that the plugin handles missing configuration gracefully (it doesn't - Maven handles it beforehand).
Suggested Fix
Remove the null check block entirely.
Summary
ToolchainMojo.execute()contains a null check on thetoolchainsfield that is annotated with@Parameter(required = true). Maven enforces required parameters before the mojo executes, making this check dead code.Location
ToolchainMojo.java:58-61https://github.com/apache/maven-toolchains-plugin/blob/master/src/main/java/org/apache/maven/plugins/toolchain/ToolchainMojo.java#L58-L61
Code
Problem
@Parameter(required = true)means Maven will fail the build with an error if thetoolchainsconfiguration is not provided// should not happen since parameter is required...confirms the developer knew this was dead codeImpact
Dead code increases maintenance burden and gives a false impression that the plugin handles missing configuration gracefully (it doesn't - Maven handles it beforehand).
Suggested Fix
Remove the null check block entirely.