From 305b6091cdc79967cc996c6575913ab56c69baa5 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Sun, 29 Sep 2019 12:14:54 +0300 Subject: [PATCH] Consider, that ':' can be in file path (Windows case) #KT-31478 fixed --- .../targets/js/internal/NodeJsStackTraceParser.kt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/NodeJsStackTraceParser.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/NodeJsStackTraceParser.kt index dc8eb3ab490..4f51b7a76c2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/NodeJsStackTraceParser.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/NodeJsStackTraceParser.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.gradle.targets.js.internal import org.jetbrains.kotlin.gradle.internal.testing.ParsedStackTrace -import java.lang.StringBuilder data class NodeJsStackTrace( val message: String?, @@ -57,10 +56,14 @@ fun parseNodeJsStackTrace(stackTrace: String): NodeJsStackTrace { var colNumber: Int? = null fun parsePos(fileAndPos: String) { - val fileAndPosComponents = fileAndPos.split(":") - fileName = fileAndPosComponents[0] - if (fileAndPosComponents.size > 1) lineNumber = fileAndPosComponents[1].toIntOrNull() - if (fileAndPosComponents.size > 2) colNumber = fileAndPosComponents[2].toIntOrNull() + val components = fileAndPos.split(":").toMutableList() + if (components.size > 2) { + colNumber = components.removeAt(components.size - 1).toIntOrNull() + } + if (components.size > 1) { + lineNumber = components.removeAt(components.size - 1).toIntOrNull() + } + fileName = components.joinToString(":") } if (srcLine.startsWith("at ")) {