[BUGFIX] Catch exceptions during extension update check 46/43146/2
authorNicole Cordes <typo3@cordes.co>
Tue, 28 Jul 2015 14:05:02 +0000 (16:05 +0200)
committerChristian Kuhn <lolli@schwarzbu.ch>
Wed, 9 Sep 2015 08:58:46 +0000 (10:58 +0200)
For each extension the available update versions are checked. This
also tries to resolve the extension version dependencies according to
the current system. There might be updates which collide and
exceptions are thrown. This patch catches thrown exceptions as the
update check shouldn't break the Extension Manager.

Resolves: #68585
Releases: master, 6.2
Change-Id: Idc1ed32304dc71dbfe722b3f2c32664f9928cb36
Reviewed-on: http://review.typo3.org/43146
Reviewed-by: Nicole Cordes <typo3@cordes.co>
Tested-by: Nicole Cordes <typo3@cordes.co>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php

index 9831d2a..1873f35 100644 (file)
@@ -13,7 +13,9 @@ namespace TYPO3\CMS\Extensionmanager\Utility;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 use TYPO3\CMS\Impexp\Utility\ImportExportUtility;
+use TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException;
 
 /**
  * Extension Manager Install Utility
@@ -431,9 +433,12 @@ class InstallUtility implements \TYPO3\CMS\Core\SingletonInterface {
                );
                if ($extensionUpdates->count() > 0) {
                        foreach ($extensionUpdates as $extensionUpdate) {
-                               $this->dependencyUtility->checkDependencies($extensionUpdate);
-                               if (!$this->dependencyUtility->hasDependencyErrors()) {
-                                       return $extensionUpdate;
+                               try {
+                                       $this->dependencyUtility->checkDependencies($extensionUpdate);
+                                       if (!$this->dependencyUtility->hasDependencyErrors()) {
+                                               return $extensionUpdate;
+                                       }
+                               } catch (ExtensionManagerException $e) {
                                }
                        }
                }