diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClasspathAnalyzer.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClasspathAnalyzer.kt index 4747e3f58eb..ce5c6b80e6b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClasspathAnalyzer.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClasspathAnalyzer.kt @@ -43,7 +43,9 @@ private fun visitDirectory(directory: File): ClasspathEntryData { it.extension == "class" && !it.relativeTo(directory).toString().toLowerCase().startsWith("meta-inf") }.forEach { val internalName = it.relativeTo(directory).invariantSeparatorsPath.dropLast(".class".length) - analyzeInputStream(it.inputStream(), internalName, entryData) + BufferedInputStream(it.inputStream()).use { inputStream -> + analyzeInputStream(inputStream, internalName, entryData) + } } return entryData @@ -58,7 +60,9 @@ private fun visitJar(jar: File): ClasspathEntryData { val entry = entries.nextElement() if (entry.name.endsWith("class") && !entry.name.toLowerCase().startsWith("meta-inf")) { - analyzeInputStream(zipFile.getInputStream(entry), entry.name.dropLast(".class".length), entryData) + BufferedInputStream(zipFile.getInputStream(entry)).use { inputStream -> + analyzeInputStream(inputStream, entry.name.dropLast(".class".length), entryData) + } } } } @@ -69,7 +73,7 @@ private fun visitJar(jar: File): ClasspathEntryData { private fun analyzeInputStream(input: InputStream, internalName: String, entryData: ClasspathEntryData) { val abiExtractor = ClassAbiExtractor(ClassWriter(0)) val typeDependenciesExtractor = ClassTypeExtractorVisitor(abiExtractor) - ClassReader(BufferedInputStream(input).readBytes()).accept( + ClassReader(input.readBytes()).accept( typeDependenciesExtractor, ClassReader.SKIP_CODE or ClassReader.SKIP_DEBUG or ClassReader.SKIP_FRAMES )