Repository: maven-resolver Updated Branches: refs/heads/master 5907bd446 -> e391a27ab
[MRESOLVER-8] Direct dependencies incorrectly detected as transitive. o For the impatient: Look at those 'deriveChildXyz' methods how they never decrease the depth value and always increase that value by one although during recursion depth needs to be decreased. All those components, once switched to 'transitive' mode, never will get switched back to 'direct' mode. Project: http://git-wip-us.apache.org/repos/asf/maven-resolver/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-resolver/commit/e391a27a Tree: http://git-wip-us.apache.org/repos/asf/maven-resolver/tree/e391a27a Diff: http://git-wip-us.apache.org/repos/asf/maven-resolver/diff/e391a27a Branch: refs/heads/master Commit: e391a27ab3609fc63a625bbe3a25401af6ec02ef Parents: 5907bd4 Author: Christian Schulte <[email protected]> Authored: Mon Nov 14 01:37:36 2016 +0100 Committer: Christian Schulte <[email protected]> Committed: Mon Nov 14 01:40:15 2016 +0100 ---------------------------------------------------------------------- .../aether/internal/impl/DefaultDependencyCollector.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/e391a27a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java ---------------------------------------------------------------------- diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java index 4357f9c..e38cf63 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java @@ -476,8 +476,10 @@ public class DefaultDependencyCollector DependencyTraverser depTraverser, VersionFilter verFilter, Dependency d, ArtifactDescriptorResult descriptorResult, DefaultDependencyNode child ) { - DefaultDependencyCollectionContext context = args.collectionContext.clone(); - context.set( d, descriptorResult.getManagedDependencies() ); + final DefaultDependencyCollectionContext savedContext = args.collectionContext; + args.collectionContext = args.collectionContext.clone(); + args.collectionContext.set( d, descriptorResult.getManagedDependencies() ); + DefaultDependencyCollectionContext context = args.collectionContext; DependencySelector childSelector = depSelector != null ? depSelector.deriveChildSelector( context ) : null; DependencyManager childManager = depManager != null ? depManager.deriveChildManager( context ) : null; @@ -508,6 +510,8 @@ public class DefaultDependencyCollector { child.setChildren( children ); } + + args.collectionContext = savedContext; } private ArtifactDescriptorResult getArtifactDescriptorResult( Args args, Results results, boolean noDescriptor, @@ -696,7 +700,7 @@ public class DefaultDependencyCollector final NodeStack nodes; - final DefaultDependencyCollectionContext collectionContext; + DefaultDependencyCollectionContext collectionContext; final DefaultVersionFilterContext versionContext;
