Usage of internal knowledge of the implementation of the constructor of DefaultArtifact. Throw new IllegalArgumentException is not documented and might change with a new version of aether. Of course with the current implementation of DefaultArtifact it would work to delegate the check to DefaultArtifact as can be seen by reviewing the coding of the constructor.