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
);
}
}