From 2da1f3b1612fd19be8082283c6d070759a42de12 Mon Sep 17 00:00:00 2001 From: Paweł Marks Date: Mon, 6 Jul 2020 16:46:28 +0200 Subject: Add CacheWrapper to mitigate NPE issues --- .../kotlin/resolvers/external/ExternalLocationProviderFactory.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'plugins/base/src/main/kotlin/resolvers') diff --git a/plugins/base/src/main/kotlin/resolvers/external/ExternalLocationProviderFactory.kt b/plugins/base/src/main/kotlin/resolvers/external/ExternalLocationProviderFactory.kt index ce6fbba0..83de9911 100644 --- a/plugins/base/src/main/kotlin/resolvers/external/ExternalLocationProviderFactory.kt +++ b/plugins/base/src/main/kotlin/resolvers/external/ExternalLocationProviderFactory.kt @@ -17,8 +17,10 @@ interface ExternalLocationProviderFactory { class ExternalLocationProviderFactoryWithCache(val ext: ExternalLocationProviderFactory) : ExternalLocationProviderFactory { - private val locationProviders = ConcurrentHashMap() + private val locationProviders = ConcurrentHashMap() override fun getExternalLocationProvider(param: String): ExternalLocationProvider? = - locationProviders.getOrPut(param) { ext.getExternalLocationProvider(param) } -} \ No newline at end of file + locationProviders.getOrPut(param) { CacheWrapper(ext.getExternalLocationProvider(param)) }.provider +} + +private class CacheWrapper(val provider: ExternalLocationProvider?) \ No newline at end of file -- cgit