diff --git a/lib/private/installer.php b/lib/private/installer.php index 3b39357b4b6..a3b714d7b3e 100644 --- a/lib/private/installer.php +++ b/lib/private/installer.php @@ -556,9 +556,12 @@ class OC_Installer{ if ($softErrors) { try { OC_Installer::installShippedApp($filename); - } catch (\Doctrine\DBAL\Exception\TableExistsException $e) { - $errors[$filename] = $e; - continue; + } catch (\OC\HintException $e) { + if ($e->getPrevious() instanceof \Doctrine\DBAL\Exception\TableExistsException) { + $errors[$filename] = $e; + continue; + } + throw $e; } } else { OC_Installer::installShippedApp($filename); @@ -585,13 +588,13 @@ class OC_Installer{ //install the database $appPath = OC_App::getAppPath($app); if(is_file("$appPath/appinfo/database.xml")) { - OC_DB::createDbFromStructure("$appPath/appinfo/database.xml"); try { OC_DB::createDbFromStructure("$appPath/appinfo/database.xml"); } catch (\Doctrine\DBAL\Exception\TableExistsException $e) { throw new \OC\HintException( 'Failed to enable app ' . $app, - 'Please ask for help via one of our support channels.' + 'Please ask for help via one of our support channels.', + 0, $e ); } }