From 16687d516eeab509302e59d136ad1cb3acc558b0 Mon Sep 17 00:00:00 2001 From: Jaime Lennox Date: Sun, 4 Jul 2021 11:34:14 +0100 Subject: [PATCH] fix: stack overflow error when generating hashes This can happen if a rule ends up depending on itself. To check for this we simply avoid trying to create a digest for a rule of the same name as the current one we're working on. Fixes: #71 --- src/main/java/com/bazel_diff/TargetHashingClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bazel_diff/TargetHashingClient.java b/src/main/java/com/bazel_diff/TargetHashingClient.java index de0885e..91c17c5 100644 --- a/src/main/java/com/bazel_diff/TargetHashingClient.java +++ b/src/main/java/com/bazel_diff/TargetHashingClient.java @@ -89,7 +89,7 @@ private byte[] createDigestForRule( digest.update(ruleInput.getBytes()); BazelRule inputRule = allRulesMap.get(ruleInput); byte[] sourceFileDigest = getDigestForSourceTargetName(ruleInput, bazelSourcefileTargets); - if (inputRule != null) { + if (inputRule != null && !inputRule.getName().equals(rule.getName())) { byte[] ruleInputHash = createDigestForRule( inputRule, allRulesMap,