From cf8899919de84945ed844bff88e5a54e21dd6e94 Mon Sep 17 00:00:00 2001 From: dive2tech Date: Mon, 26 Jan 2026 15:47:16 -0500 Subject: [PATCH] [2.x] Fix potential division by zero in CacheEventLog.toSummary (#8635) Add guard to prevent division by zero when calculating hitRate. If total is 0, hitRate is set to 0.0 instead of causing NaN or Infinity. --- util-cache/src/main/scala/sbt/internal/util/CacheEventLog.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util-cache/src/main/scala/sbt/internal/util/CacheEventLog.scala b/util-cache/src/main/scala/sbt/internal/util/CacheEventLog.scala index af8df597a..16c88b39f 100644 --- a/util-cache/src/main/scala/sbt/internal/util/CacheEventLog.scala +++ b/util-cache/src/main/scala/sbt/internal/util/CacheEventLog.scala @@ -71,7 +71,7 @@ class CacheEventLog: val hits = events.view.collect { case (ActionCacheEvent.Found(id), v) => (id, v) }.toMap val hitCount = hits.values.sum val missCount = total - hitCount - val hitRate = (hitCount.toDouble / total.toDouble) + val hitRate = if total > 0 then (hitCount.toDouble / total.toDouble) else 0.0 val onsiteCount = events.get(ActionCacheEvent.OnsiteTask) val errorCount = events.get(ActionCacheEvent.Error) CacheEventSummary.Data(