Skip to content

Commit 20c1fd8

Browse files
committed
fix(evaluator): Fix cycle detection
The check whether packages have already been visited in dependency rules was ineffective. It was based on dependency nodes processed during graph traversal, which cannot be compared or stored in collections. Fix this by using the stable references to the nodes instead. Signed-off-by: Oliver Heger <[email protected]>
1 parent 1ed668e commit 20c1fd8

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

evaluator/src/main/kotlin/RuleSet.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,13 @@ class RuleSet(
9595
project: Project,
9696
visitedPackages: MutableSet<DependencyNode>
9797
) {
98-
if (node in visitedPackages) {
98+
val stableNode = node.getStableReference()
99+
if (stableNode in visitedPackages) {
99100
logger.debug { "Skipping rule $name for already visited dependency ${node.id.toCoordinates()}." }
100101
return
101102
}
102103

103-
visitedPackages += node
104+
visitedPackages += stableNode
104105

105106
val curatedPackage = ortResult.getPackage(node.id)
106107
?: ortResult.getProject(node.id)?.toPackage()?.toCuratedPackage()

0 commit comments

Comments
 (0)