From 396b621fdac8bcd7d1136ffe1ff9f31a01f6e1c1 Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Fri, 5 Aug 2016 14:37:16 +0300 Subject: [PATCH] gradle: handle cycles during configuration project dependencies collect IDEA-158517 --- .../plugins/gradle/tooling/util/DependencyResolverImpl.groovy | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/util/DependencyResolverImpl.groovy b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/util/DependencyResolverImpl.groovy index dd6ac919a370..61c84270b301 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/util/DependencyResolverImpl.groovy +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/util/DependencyResolverImpl.groovy @@ -143,8 +143,10 @@ class DependencyResolverImpl implements DependencyResolver { Map componentResultsMap = [:]; componentResults.each { componentResultsMap.put(it.id, it) } + Set processedConfigurations = new HashSet<>() def projectDeps projectDeps = { Configuration conf, map = ArrayListMultimap.create() -> + if(!processedConfigurations.add(conf)) return map conf.incoming.dependencies.findAll { it instanceof ProjectDependency }.each { it -> map.put(toComponentIdentifier(it.group, it.name, it.version), it as ProjectDependency) projectDeps((it as ProjectDependency).projectConfiguration, map)