From 425467ca9974ef08409ee4d85878bb58dfec3a44 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 4 Dec 2018 17:04:39 +0900 Subject: [PATCH] Kapt: Switch to more appropriate way of converting URIs to Files --- .../kapt3/base/stubs/KaptStubLineInformation.kt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/stubs/KaptStubLineInformation.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/stubs/KaptStubLineInformation.kt index 24388f5548f..fe90a0e765b 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/stubs/KaptStubLineInformation.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/stubs/KaptStubLineInformation.kt @@ -11,6 +11,8 @@ import org.jetbrains.kotlin.kapt3.base.util.getPackageNameJava9Aware import java.io.ByteArrayInputStream import java.io.File import java.io.ObjectInputStream +import java.nio.file.FileSystemNotFoundException +import java.nio.file.Paths class KaptStubLineInformation { private val offsets = mutableMapOf() @@ -21,11 +23,16 @@ class KaptStubLineInformation { const val METADATA_VERSION = 1 fun parseFileInfo(file: JCTree.JCCompilationUnit): FileInfo { - val sourceUri = file.sourcefile - ?.toUri() - ?.takeIf { it.isAbsolute && !it.isOpaque && it.path != null && it.scheme?.toLowerCase() == "file" } ?: return FileInfo.EMPTY + val uri = file.sourcefile?.toUri() ?: return FileInfo.EMPTY + + val sourceFile = try { + Paths.get(uri).toFile() + } catch (e: FileSystemNotFoundException) { + return FileInfo.EMPTY + } catch (e: UnsupportedOperationException) { + return FileInfo.EMPTY + } - val sourceFile = File(sourceUri).takeIf { it.exists() } ?: return FileInfo.EMPTY val kaptMetadataFile = File(sourceFile.parentFile, sourceFile.nameWithoutExtension + KAPT_METADATA_EXTENSION) if (!kaptMetadataFile.isFile) {