Skip to content

Commit d8c8573

Browse files
authored
Fix classloader caching. Many thanks @scana for catching this (#6309)
1 parent 4f595f0 commit d8c8573

File tree

1 file changed

+5
-3
lines changed
  • libraries/apollo-gradle-plugin-external/src/main/kotlin/com/apollographql/apollo/gradle/internal

1 file changed

+5
-3
lines changed

libraries/apollo-gradle-plugin-external/src/main/kotlin/com/apollographql/apollo/gradle/internal/ApolloBuildService.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,19 @@ package com.apollographql.apollo.gradle.internal
33
import org.gradle.api.file.FileCollection
44
import org.gradle.api.services.BuildService
55
import org.gradle.api.services.BuildServiceParameters
6+
import java.net.URI
67
import java.net.URL
78
import java.net.URLClassLoader
89

910
abstract class ApolloBuildService: BuildService<BuildServiceParameters.None>, AutoCloseable {
10-
private val classloaders = mutableMapOf<Array<URL>, ClassLoader>()
11+
private val classloaders = mutableMapOf<List<URI>, ClassLoader>()
1112

13+
@Synchronized
1214
fun classloader(classpath: FileCollection): ClassLoader {
13-
val urls = classpath.map { it.toURI().toURL() }.toTypedArray()
15+
val urls = classpath.map { it.toURI() }
1416
return classloaders.getOrPut(urls) {
1517
URLClassLoader(
16-
urls,
18+
urls.map { it.toURL() }.toTypedArray(),
1719
ClassLoader.getPlatformClassLoader()
1820
)
1921
}

0 commit comments

Comments
 (0)