diff --git a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Relocators.kt b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Relocators.kt index 1110c7fa8..7a74a216c 100644 --- a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Relocators.kt +++ b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/Relocators.kt @@ -14,6 +14,9 @@ internal fun Set.mapName( onModified: () -> Unit, ): String { // Maybe a list of types. + // Unlike Java's String.split(), Kotlin's split() with the default limit = 0 preserves trailing + // empty segments, + // so descriptor strings ending with ';' (e.g. "Lorg/package/ClassA;") round-trip correctly. val newName = name.split(';').joinToString(";") { realMap(it, mapLiterals) } if (newName != name) { onModified()