Skip to content

Commit 2bd38a5

Browse files
authored
Merge pull request #79 from sourceplusplus/source-to-line-number-issue
fix nodejs sourceAsLineNumber() exception
2 parents 4e543ce + 0e6dd63 commit 2bd38a5

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/commonMain/kotlin/spp.protocol/artifact/exception/LiveStackTraceElement.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ fun LiveStackTraceElement.sourceAsFilename(): String? {
6161

6262
fun LiveStackTraceElement.sourceAsLineNumber(): Int? {
6363
return if (source.contains(":")) {
64-
source.substring(source.indexOf(":") + 1).toInt()
64+
source.substring(source.lastIndexOf(":") + 1).toInt()
6565
} else {
6666
null
6767
}

src/jvmTest/kotlin/spp/protocol/artifact/trace/LiveStackTraceTest.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import org.junit.Assert.assertEquals
2222
import org.junit.Assert.assertNotNull
2323
import org.junit.Test
2424
import spp.protocol.artifact.exception.LiveStackTrace
25+
import spp.protocol.artifact.exception.sourceAsLineNumber
2526

2627
class LiveStackTraceTest {
2728

@@ -54,5 +55,14 @@ class LiveStackTraceTest {
5455
assertEquals(stackTrace.message, "Something unexpected has occurred.")
5556
assertEquals(8, stackTrace.elements.size)
5657
assertEquals(8, stackTrace.getElements(true).size)
58+
59+
assertEquals(9, stackTrace.elements[0].sourceAsLineNumber())
60+
assertEquals(17, stackTrace.elements[1].sourceAsLineNumber())
61+
assertEquals(460, stackTrace.elements[2].sourceAsLineNumber())
62+
assertEquals(478, stackTrace.elements[3].sourceAsLineNumber())
63+
assertEquals(355, stackTrace.elements[4].sourceAsLineNumber())
64+
assertEquals(310, stackTrace.elements[5].sourceAsLineNumber())
65+
assertEquals(501, stackTrace.elements[6].sourceAsLineNumber())
66+
assertEquals(129, stackTrace.elements[7].sourceAsLineNumber())
5767
}
5868
}

0 commit comments

Comments
 (0)