From d0ac76a77c820d065f7b4af5238e5d11ec66253b Mon Sep 17 00:00:00 2001
From: Morris Jobke <hey@morrisjobke.de>
Date: Thu, 7 Jan 2021 21:04:11 +0100
Subject: [PATCH] Add more previous exceptions to database setup code

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
---
 core/Command/Maintenance/Install.php | 1 +
 lib/private/Setup/MySQL.php          | 2 +-
 lib/private/Setup/OCI.php            | 4 ++--
 lib/private/Setup/PostgreSQL.php     | 2 +-
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/core/Command/Maintenance/Install.php b/core/Command/Maintenance/Install.php
index ed1aeeff922..fc219e79bcd 100644
--- a/core/Command/Maintenance/Install.php
+++ b/core/Command/Maintenance/Install.php
@@ -218,6 +218,7 @@ class Install extends Command {
 
 	private function printThrowable(OutputInterface $output, Throwable $t): void {
 		$output->write('<info>Trace: ' . $t->getTraceAsString() . '</info>');
+		$output->writeln('');
 		if ($t->getPrevious() !== null) {
 			$output->writeln('');
 			$output->writeln('<info>Previous: ' . get_class($t->getPrevious()) . ': ' . $t->getPrevious()->getMessage() . '</info>');
diff --git a/lib/private/Setup/MySQL.php b/lib/private/Setup/MySQL.php
index 54542de72bf..966c97edf55 100644
--- a/lib/private/Setup/MySQL.php
+++ b/lib/private/Setup/MySQL.php
@@ -66,7 +66,7 @@ class MySQL extends AbstractDatabase {
 		} catch (\Exception $e) {
 			$this->logger->logException($e);
 			throw new \OC\DatabaseSetupException($this->trans->t('MySQL username and/or password not valid'),
-				$this->trans->t('You need to enter details of an existing account.'));
+				$this->trans->t('You need to enter details of an existing account.'), 0, $e);
 		}
 	}
 
diff --git a/lib/private/Setup/OCI.php b/lib/private/Setup/OCI.php
index 1d7fe27e8b8..ed05e0bf14c 100644
--- a/lib/private/Setup/OCI.php
+++ b/lib/private/Setup/OCI.php
@@ -74,14 +74,14 @@ class OCI extends AbstractDatabase {
 					. ' ORACLE_SID=' . getenv('ORACLE_SID')
 					. ' LD_LIBRARY_PATH=' . getenv('LD_LIBRARY_PATH')
 					. ' NLS_LANG=' . getenv('NLS_LANG')
-					. ' tnsnames.ora is ' . (is_readable(getenv('ORACLE_HOME') . '/network/admin/tnsnames.ora') ? '' : 'not ') . 'readable');
+					. ' tnsnames.ora is ' . (is_readable(getenv('ORACLE_HOME') . '/network/admin/tnsnames.ora') ? '' : 'not ') . 'readable', 0, $e);
 			}
 			throw new \OC\DatabaseSetupException($this->trans->t('Oracle username and/or password not valid'),
 				'Check environment: ORACLE_HOME=' . getenv('ORACLE_HOME')
 				. ' ORACLE_SID=' . getenv('ORACLE_SID')
 				. ' LD_LIBRARY_PATH=' . getenv('LD_LIBRARY_PATH')
 				. ' NLS_LANG=' . getenv('NLS_LANG')
-				. ' tnsnames.ora is ' . (is_readable(getenv('ORACLE_HOME') . '/network/admin/tnsnames.ora') ? '' : 'not ') . 'readable');
+				. ' tnsnames.ora is ' . (is_readable(getenv('ORACLE_HOME') . '/network/admin/tnsnames.ora') ? '' : 'not ') . 'readable', 0, $e);
 		}
 
 		$this->config->setValues([
diff --git a/lib/private/Setup/PostgreSQL.php b/lib/private/Setup/PostgreSQL.php
index 3d7a0b2a4b1..1f0b7b8f894 100644
--- a/lib/private/Setup/PostgreSQL.php
+++ b/lib/private/Setup/PostgreSQL.php
@@ -99,7 +99,7 @@ class PostgreSQL extends AbstractDatabase {
 		} catch (\Exception $e) {
 			$this->logger->logException($e);
 			throw new \OC\DatabaseSetupException($this->trans->t('PostgreSQL username and/or password not valid'),
-				$this->trans->t('You need to enter details of an existing account.'));
+				$this->trans->t('You need to enter details of an existing account.'), 0, $e);
 		}
 	}
 
-- 
GitLab