Affects Version/s: 2.2.0
Fix Version/s: 2.2.1
Environment:Apache Maven 2.2.1-RC2-SNAPSHOT (r799976; 2009-08-02 19:18:34+1000)
Java version: 1.6.0_14
Java home: /usr/lib/jvm/java-6-sun-22.214.171.124/jre
Default locale: en_AU, platform encoding: UTF-8
OS name: "linux" version: "2.6.28-14-generic" arch: "amd64" Family: "unix"
MNG-3380  to Process relocations before child-nodes are discovered during artifact collection, conflict with MNG-1689  " Only print relocation warnings in standard output for the current pom". This results in a regression where (direct) relocations are no longer logged at WARNING level and are only logged at DEBUG. Direct relocations should be logged at WARNING level.
MNG-3380 was applied to DefaultArtifactCollector - the result is that the call to MavenMetadataSource#retrieveRelocatedArtifact() (then retrieveRelocatedProject()) occur before the call to artifact.setDependencyTrail( node.getDependencyTrail() ); in DefaultArtifactCollector. This results in a null list in MavenMetadataSource, which then fails the if-test to log at WARNING level introduced in MNG-1689.
With a quick inspection I couldn't see the harm in bringing forward the call to:
artifact.setDependencyTrail( node.getDependencyTrail() )
, it is already called once when about to throw an exception, and this call can be replaced. Proposed patch makes the setDependencyTrail call earlier, prior to relocation detection.
See also Nabble post .