From 5fca27628bc407e2e2047db820eb99350bb596a4 Mon Sep 17 00:00:00 2001 From: GoodOwl <33981275+GoodOwl@users.noreply.github.com> Date: Tue, 10 Dec 2024 17:14:46 +0200 Subject: [PATCH 1/2] call getRelativePath() once to make the scan faster --- .../coverage/metrics/steps/CoverageRecorder.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java index 303ac6d6..9b820702 100644 --- a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java +++ b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java @@ -445,9 +445,13 @@ private void resolveAbsolutePaths(final Node rootNode, final FilePath workspace, if (!pathMapping.isEmpty()) { log.logInfo("Making paths of " + pathMapping.size() + " source code files relative to workspace root..."); var builder = new TreeStringBuilder(); - rootNode.getAllFileNodes().stream() - .filter(file -> pathMapping.containsKey(file.getRelativePath())) - .forEach(file -> file.setRelativePath(builder.intern(pathMapping.get(file.getRelativePath())))); + rootNode.getAllFileNodes().forEach(file -> { + String newPath = pathMapping.get(file.getRelativePath()); + if (newPath != null) { + file.setRelativePath(builder.intern(newPath)); + } + }); + builder.dedup(); } } From ba75ea4e22fe6cf711027101d8e312db79f8ba5a Mon Sep 17 00:00:00 2001 From: GoodOwl <33981275+GoodOwl@users.noreply.github.com> Date: Wed, 11 Dec 2024 10:06:55 +0200 Subject: [PATCH 2/2] use containsKey instead of null --- .../plugins/coverage/metrics/steps/CoverageRecorder.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java index 9b820702..4351cc91 100644 --- a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java +++ b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java @@ -446,9 +446,9 @@ private void resolveAbsolutePaths(final Node rootNode, final FilePath workspace, log.logInfo("Making paths of " + pathMapping.size() + " source code files relative to workspace root..."); var builder = new TreeStringBuilder(); rootNode.getAllFileNodes().forEach(file -> { - String newPath = pathMapping.get(file.getRelativePath()); - if (newPath != null) { - file.setRelativePath(builder.intern(newPath)); + String relativePath = file.getRelativePath(); + if (pathMapping.containsKey(relativePath)) { + file.setRelativePath(builder.intern(pathMapping.get(relativePath))); } });