From 84a510816cff5a951db58bb47abe81530f3c33bc Mon Sep 17 00:00:00 2001 From: Zsofia Borbely Date: Tue, 25 Feb 2025 14:02:24 +0100 Subject: [PATCH 1/3] TS-41980 Handle nested jars for converter --- .../java/com/teamscale/jacoco/agent/convert/Converter.java | 2 +- .../kotlin/com/teamscale/report/jacoco/FilteringAnalyzer.kt | 5 ++--- .../com/teamscale/report/util/BashFileSkippingInputStream.kt | 2 -- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/agent/src/main/java/com/teamscale/jacoco/agent/convert/Converter.java b/agent/src/main/java/com/teamscale/jacoco/agent/convert/Converter.java index a79ec8247..ee37e5341 100644 --- a/agent/src/main/java/com/teamscale/jacoco/agent/convert/Converter.java +++ b/agent/src/main/java/com/teamscale/jacoco/agent/convert/Converter.java @@ -60,7 +60,7 @@ public void runJaCoCoReportGeneration() throws IOException, AgentOptionParseExce try (Benchmark benchmark = new Benchmark("Generating the XML report")) { generator.convert(new Dump(sessionInfo, executionDataStore), Paths.get(arguments.outputFile).toFile()); } catch (EmptyReportException e) { - logger.warn("Converted report was emtpy.", e); + logger.warn("Converted report was empty.", e); } } diff --git a/report-generator/src/main/kotlin/com/teamscale/report/jacoco/FilteringAnalyzer.kt b/report-generator/src/main/kotlin/com/teamscale/report/jacoco/FilteringAnalyzer.kt index 7a12e7dbe..583005898 100644 --- a/report-generator/src/main/kotlin/com/teamscale/report/jacoco/FilteringAnalyzer.kt +++ b/report-generator/src/main/kotlin/com/teamscale/report/jacoco/FilteringAnalyzer.kt @@ -69,11 +69,10 @@ open class FilteringAnalyzer( */ @Throws(IOException::class) protected open fun analyzeJar(input: InputStream, location: String): Int { - ZipInputStream(BashFileSkippingInputStream(input)).use { zip -> - return generateSequence { zip.nextEntry(location) } + val zip = ZipInputStream(BashFileSkippingInputStream(input)) + return generateSequence { zip.nextEntry(location) } .map { entry -> analyzeAll(zip, "$location@${entry.name}") } .sum() - } } /** Copied from [org.jacoco.core.analysis.Analyzer.nextEntry]. */ diff --git a/report-generator/src/main/kotlin/com/teamscale/report/util/BashFileSkippingInputStream.kt b/report-generator/src/main/kotlin/com/teamscale/report/util/BashFileSkippingInputStream.kt index ba9834456..de51ce7fa 100644 --- a/report-generator/src/main/kotlin/com/teamscale/report/util/BashFileSkippingInputStream.kt +++ b/report-generator/src/main/kotlin/com/teamscale/report/util/BashFileSkippingInputStream.kt @@ -46,8 +46,6 @@ class BashFileSkippingInputStream(input: InputStream) : FilterInputStream(Buffer `in`.mark(BUFFER_SIZE) bytesRead = `in`.read(buffer, 0, BUFFER_SIZE) } - - throw IOException("ZIP header not found in the input stream.") } /** From 39e37d4bc8ed319ed78809582f4a45e62bc81b9b Mon Sep 17 00:00:00 2001 From: Zsofia Borbely Date: Tue, 25 Feb 2025 14:23:15 +0100 Subject: [PATCH 2/3] TS-41980 Add test --- .../jacoco/agent/convert/ConverterTest.java | 18 ++++++++++++++++++ .../jacoco/agent/convert/TestClass.jar.zip | Bin 0 -> 655 bytes 2 files changed, 18 insertions(+) create mode 100644 agent/src/test/resources/com/teamscale/jacoco/agent/convert/TestClass.jar.zip diff --git a/agent/src/test/java/com/teamscale/jacoco/agent/convert/ConverterTest.java b/agent/src/test/java/com/teamscale/jacoco/agent/convert/ConverterTest.java index b072eb509..27ad950ad 100644 --- a/agent/src/test/java/com/teamscale/jacoco/agent/convert/ConverterTest.java +++ b/agent/src/test/java/com/teamscale/jacoco/agent/convert/ConverterTest.java @@ -36,6 +36,24 @@ public void testSmokeTest(@TempDir File tempDir) throws Exception { assertThat(xml).isNotEmpty().contains("x8R0|U?q1_tgAX=#Fq4;Y+|UOHC5rt#zCi311DFE}7DDJtgCoXHU}Yo_xk zIXhQK-uNt+y6hUGVTaz@2Wbf@KeOe6iTC zN#9&wc6Y64dpuotd&rj6*6*eEdF;RS=1InWhqx_epM4a$|2^M)U)*-~boa zX6tI7ly}`Od7gdyBHq0cJ;u6jV?Wn@mvozqfIBwnzgwQM^p>iOzOL{~9*}s~#?a!_S-+X$PovbTbyQZF7 z=KOWdDYLdm8y)A~G;3Cor|#GHcV6YnKRA0Xu-@G~ne3Z^~NH|SnJ}SVY zlgTns2w6ef4rkAWe3UUkq-s~JVeb2=o2F58U4Fq^IGKnxF(g(5}D1E@d bl131Vq|_4N&B_MS#0Z4ZKw1uH9RmXZ9h4NJ literal 0 HcmV?d00001 From e57a1ffc38bfa214406e19b19ddcc63a3ee8b38a Mon Sep 17 00:00:00 2001 From: Zsofia Borbely Date: Tue, 25 Feb 2025 14:59:43 +0100 Subject: [PATCH 3/3] TS-41980 Rework --- .../java/com/teamscale/jacoco/agent/convert/ConverterTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/agent/src/test/java/com/teamscale/jacoco/agent/convert/ConverterTest.java b/agent/src/test/java/com/teamscale/jacoco/agent/convert/ConverterTest.java index 27ad950ad..5ce202975 100644 --- a/agent/src/test/java/com/teamscale/jacoco/agent/convert/ConverterTest.java +++ b/agent/src/test/java/com/teamscale/jacoco/agent/convert/ConverterTest.java @@ -32,7 +32,6 @@ public void testSmokeTest(@TempDir File tempDir) throws Exception { new Converter(arguments).runJaCoCoReportGeneration(); String xml = FileSystemUtils.readFileUTF8(outputFile); - System.err.println(xml); assertThat(xml).isNotEmpty().contains("