Fix the handling of unknown packages
authorAlexander Ebert <ebert@woltlab.com>
Mon, 6 Nov 2023 13:02:19 +0000 (14:02 +0100)
committerAlexander Ebert <ebert@woltlab.com>
Mon, 6 Nov 2023 13:02:19 +0000 (14:02 +0100)
wcfsetup/install/files/lib/system/package/PackageUpdateDispatcher.class.php

index 894f6f182c741b202eb77e62533b793f223ab615..5d8b6f37f7cbaeb6b7b956f5ea773d4163d8c7e5 100644 (file)
@@ -848,6 +848,10 @@ final class PackageUpdateDispatcher extends SingletonFactory
             $version = $this->getNewestPackageVersion($package);
         }
 
+        if ($version === null) {
+            throw new SystemException("Cannot find the package '" . $package . "'");
+        }
+
         // get versions
         $conditions = new PreparedStatementConditionBuilder();
         $conditions->add('pu.package = ?', [$package]);
@@ -867,7 +871,7 @@ final class PackageUpdateDispatcher extends SingletonFactory
         $versions = $statement->fetchAll(\PDO::FETCH_ASSOC);
 
         if (empty($versions)) {
-            throw new SystemException("Cannot find package '" . $package . "' in version '" . $version . "'");
+            throw new SystemException("Cannot find the package '" . $package . "' in version '" . $version . "'");
         }
 
         return $versions;
@@ -876,7 +880,7 @@ final class PackageUpdateDispatcher extends SingletonFactory
     /**
      * Returns the newest available version of a package.
      */
-    public function getNewestPackageVersion(string $package): string
+    public function getNewestPackageVersion(string $package): ?string
     {
         // get all versions
         $versions = [];