diff --git a/src/main/kotlin/link/infra/packwiz/installer/metadata/IndexFile.kt b/src/main/kotlin/link/infra/packwiz/installer/metadata/IndexFile.kt index 7429382..14acfef 100644 --- a/src/main/kotlin/link/infra/packwiz/installer/metadata/IndexFile.kt +++ b/src/main/kotlin/link/infra/packwiz/installer/metadata/IndexFile.kt @@ -78,9 +78,9 @@ class IndexFile { get() { if (metafile) { return linkedFile?.name ?: linkedFile?.filename ?: - file?.run { Paths.get(path).fileName.toString() } ?: "Invalid file" + file?.run { Paths.get(path ?: return "Invalid file").fileName.toString() } ?: "Invalid file" } - return file?.run { Paths.get(path).fileName.toString() } ?: "Invalid file" + return file?.run { Paths.get(path ?: return "Invalid file").fileName.toString() } ?: "Invalid file" } // TODO: URIs are bad diff --git a/src/main/kotlin/link/infra/packwiz/installer/metadata/SpaceSafeURI.kt b/src/main/kotlin/link/infra/packwiz/installer/metadata/SpaceSafeURI.kt index 664c15d..a5a39e8 100644 --- a/src/main/kotlin/link/infra/packwiz/installer/metadata/SpaceSafeURI.kt +++ b/src/main/kotlin/link/infra/packwiz/installer/metadata/SpaceSafeURI.kt @@ -32,7 +32,7 @@ class SpaceSafeURI : Comparable, Serializable { ) } - val path: String get() = u.path.replace("%20", " ") + val path: String? get() = u.path?.replace("%20", " ") override fun toString(): String = u.toString().replace("%20", " ") @@ -52,9 +52,9 @@ class SpaceSafeURI : Comparable, Serializable { override fun compareTo(other: SpaceSafeURI): Int = u.compareTo(other.u) - val scheme: String get() = u.scheme - val authority: String get() = u.authority - val host: String get() = u.host + val scheme: String? get() = u.scheme + val authority: String? get() = u.authority + val host: String? get() = u.host @Throws(MalformedURLException::class) fun toURL(): URL = u.toURL() diff --git a/src/main/kotlin/link/infra/packwiz/installer/request/handlers/RequestHandlerGithub.kt b/src/main/kotlin/link/infra/packwiz/installer/request/handlers/RequestHandlerGithub.kt index 9a2303a..d56cc45 100644 --- a/src/main/kotlin/link/infra/packwiz/installer/request/handlers/RequestHandlerGithub.kt +++ b/src/main/kotlin/link/infra/packwiz/installer/request/handlers/RequestHandlerGithub.kt @@ -1,7 +1,6 @@ package link.infra.packwiz.installer.request.handlers import link.infra.packwiz.installer.metadata.SpaceSafeURI -import java.util.* import java.util.concurrent.locks.ReentrantReadWriteLock import java.util.regex.Pattern import kotlin.concurrent.read @@ -21,7 +20,7 @@ class RequestHandlerGithub : RequestHandlerZip(true) { private val zipUriMap: MutableMap = HashMap() private val zipUriLock = ReentrantReadWriteLock() private fun getRepoName(loc: SpaceSafeURI): String? { - val matcher = repoMatcherPattern.matcher(loc.path) + val matcher = repoMatcherPattern.matcher(loc.path ?: return null) return if (matcher.matches()) { matcher.group(1) } else { @@ -47,7 +46,7 @@ class RequestHandlerGithub : RequestHandlerZip(true) { } private fun getBranch(loc: SpaceSafeURI): String? { - val matcher = branchMatcherPattern.matcher(loc.path) + val matcher = branchMatcherPattern.matcher(loc.path ?: return null) return if (matcher.matches()) { matcher.group(1) } else { @@ -66,6 +65,6 @@ class RequestHandlerGithub : RequestHandlerZip(true) { return false } // TODO: more match testing? - return "github.com" == loc.host && branchMatcherPattern.matcher(loc.path).matches() + return "github.com" == loc.host && branchMatcherPattern.matcher(loc.path ?: return false).matches() } } \ No newline at end of file