From 6c36a7c227e2b4f053286736d0eb26102d956856 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Wed, 16 Dec 2015 18:51:10 +0400 Subject: [PATCH] Fix the NPE caused by null versions. --- .../com/beust/kobalt/maven/DepFactory.kt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/com/beust/kobalt/maven/DepFactory.kt b/src/main/kotlin/com/beust/kobalt/maven/DepFactory.kt index c218f9ae..ddf74a86 100644 --- a/src/main/kotlin/com/beust/kobalt/maven/DepFactory.kt +++ b/src/main/kotlin/com/beust/kobalt/maven/DepFactory.kt @@ -26,30 +26,28 @@ public class DepFactory @Inject constructor(val localRepo: LocalRepo, /** * Parse the id and return the correct IClasspathDependency */ - public fun create(id: String, executor: ExecutorService = defExecutor, - localFirst : Boolean = true) : IClasspathDependency { + public fun create(id: String, executor: ExecutorService = defExecutor, localFirst : Boolean = true) + : IClasspathDependency { if (id.startsWith(FileDependency.PREFIX_FILE)) { return FileDependency(id.substring(FileDependency.PREFIX_FILE.length)) } else { val mavenId = MavenId.create(id) - var version = mavenId.version var packaging = mavenId.packaging var repoResult: RepoFinder.RepoResult? - if (mavenId.version != null) { - var localVersion: String? = mavenId.version - if (localFirst) localVersion = localRepo.findLocalVersion(mavenId.groupId, mavenId.artifactId, mavenId.packaging) - if (! localFirst || localVersion == null) { + val version = mavenId.version ?: + if (localFirst) { + localRepo.findLocalVersion(mavenId.groupId, mavenId.artifactId, mavenId.packaging) + } else { repoResult = repoFinder.findCorrectRepo(id) if (!repoResult.found) { throw KobaltException("Couldn't resolve $id") } else { - version = repoResult.version?.version + repoResult.version?.version } } - } - return MavenDependency(MavenId.create(mavenId.groupId, mavenId.artifactId, packaging, version!!), + return MavenDependency(MavenId.create(mavenId.groupId, mavenId.artifactId, packaging, version), executor, localRepo, repoFinder, pomFactory, downloadManager) } }