Skip to content

[maven-4.0.x] DefaultTransport.put() has inverted file existence check #12583

Description

@elharo

DefaultTransport.put() has inverted file existence check

Found in: maven-4.0.x branch (up to commit 5ef0ac2)
File: impl/maven-impl/src/main/java/org/apache/maven/impl/transport/DefaultTransport.java (line 101)
Severity: Critical

Description

The put() method has an inverted condition on the file existence check:

if (Files.isRegularFile(source)) {
    throw new IllegalArgumentException("source file does not exist or is not a file");
}

Files.isRegularFile(source) returns true when the source IS a regular file (exists and is valid), but the error message says the file "does not exist or is not a file". The condition should use !Files.isRegularFile(source).

This bug makes the put() method impossible to use with any valid file argument — it will always throw IllegalArgumentException for legitimate files, silently succeeding only for directories, symlinks, or non-existent paths (which will then fail downstream). The entire transport upload mechanism is effectively broken.

Expected behavior

The condition should be negated:

if (!Files.isRegularFile(source)) {
    throw new IllegalArgumentException("source file does not exist or is not a file");
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions