From bf6618d414d752e47b8f837d7146a472a5d7b391 Mon Sep 17 00:00:00 2001
From: Steven Murray <Steven.Murray@cern.ch>
Date: Thu, 1 Oct 2020 14:49:52 +0200
Subject: [PATCH] Revert "rdbms::ConnPool now protects against being configired
 with a maximum of zero connections"

This reverts commit 18b07b1fb4942bf74ca45d28b7a763217c1fa2d8.
---
 catalogue/InMemoryCatalogueTest.cpp                       | 4 ++--
 rdbms/ConnPool.cpp                                        | 4 +---
 rdbms/ConnPool.hpp                                        | 4 ----
 rdbms/ConnPoolTest.cpp                                    | 8 --------
 .../tape/tapeserver/daemon/MigrationReportPackerTest.cpp  | 2 +-
 5 files changed, 4 insertions(+), 18 deletions(-)

diff --git a/catalogue/InMemoryCatalogueTest.cpp b/catalogue/InMemoryCatalogueTest.cpp
index 63da12a20c..ca09bdc9dd 100644
--- a/catalogue/InMemoryCatalogueTest.cpp
+++ b/catalogue/InMemoryCatalogueTest.cpp
@@ -38,7 +38,7 @@ TEST_F(cta_catalogue_InMemoryCatalogue, createSameSchemaInTwoSeparateInMemoryDat
 
   log::DummyLogger dummyLog("dummy", "dummy");
   const uint64_t nbConns = 1;
-  const uint64_t nbArchiveFileListingConns = 1;
+  const uint64_t nbArchiveFileListingConns = 0;
 
   // First in-memory database
   {
@@ -56,7 +56,7 @@ TEST_F(cta_catalogue_InMemoryCatalogue, schemaTables) {
 
   log::DummyLogger dummyLog("dummy", "dummy");
   const uint64_t nbConns = 1;
-  const uint64_t nbArchiveFileListingConns = 1;
+  const uint64_t nbArchiveFileListingConns = 0;
 
   catalogue::InMemoryCatalogue inMemoryCatalogue(dummyLog, nbConns, nbArchiveFileListingConns);
   const auto tableNameList = inMemoryCatalogue.getTableNames();
diff --git a/rdbms/ConnPool.cpp b/rdbms/ConnPool.cpp
index 8de32c127c..a968430b5e 100644
--- a/rdbms/ConnPool.cpp
+++ b/rdbms/ConnPool.cpp
@@ -33,9 +33,7 @@ namespace rdbms {
 ConnPool::ConnPool(const Login &login, const uint64_t maxNbConns):
   m_connFactory(wrapper::ConnFactoryFactory::create(login)),
   m_maxNbConns(maxNbConns),
-  m_nbConnsOnLoan(0) {
-
-  if(0 == m_maxNbConns) throw MaxNbConnsIsZero("Cannot instantiate ConnPool because maxNbConns=0");
+  m_nbConnsOnLoan(0){
 }
 
 //------------------------------------------------------------------------------
diff --git a/rdbms/ConnPool.hpp b/rdbms/ConnPool.hpp
index 11c4bb3c9d..6b44bf2686 100644
--- a/rdbms/ConnPool.hpp
+++ b/rdbms/ConnPool.hpp
@@ -18,7 +18,6 @@
 
 #pragma once
 
-#include "common/exception/Exception.hpp"
 #include "common/threading/CondVar.hpp"
 #include "common/threading/Mutex.hpp"
 #include "rdbms/ConnAndStmts.hpp"
@@ -40,8 +39,6 @@ class Login;
 class ConnPool {
 public:
 
-  CTA_GENERATE_EXCEPTION_CLASS(MaxNbConnsIsZero);
-
   /**
    * Constructor.
    *
@@ -49,7 +46,6 @@ public:
    * connections.
    * @param maxNbConns The maximum number of database connections within the
    * pool.
-   * @throw MaxNbConnsIsZero if maxNbConns is set to 0.
    */
   ConnPool(const Login &login, const uint64_t maxNbConns);
 
diff --git a/rdbms/ConnPoolTest.cpp b/rdbms/ConnPoolTest.cpp
index e5a7bb5817..a4a4d30233 100644
--- a/rdbms/ConnPoolTest.cpp
+++ b/rdbms/ConnPoolTest.cpp
@@ -34,14 +34,6 @@ protected:
   }
 };
 
-TEST_F(cta_rdbms_ConnPoolTest, MaxNbConnsIsZero) {
-  using namespace cta::rdbms;
-
-  const Login login(Login::DBTYPE_SQLITE, "", "", "file::memory:?cache=shared", "", 0);
-  const uint64_t nbConns = 0;
-  ASSERT_THROW(ConnPool pool(login, nbConns), ConnPool::MaxNbConnsIsZero);
-}
-
 TEST_F(cta_rdbms_ConnPoolTest, getPooledConn) {
   using namespace cta::rdbms;
 
diff --git a/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPackerTest.cpp b/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPackerTest.cpp
index d9bd83673c..972e73a669 100644
--- a/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPackerTest.cpp
+++ b/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPackerTest.cpp
@@ -55,7 +55,7 @@ const uint32_t TEST_GROUP_2 = 9754;
 
       rdbms::Login catalogueLogin(rdbms::Login::DBTYPE_IN_MEMORY, "", "", "", "", 0);
       const uint64_t nbConns = 1;
-      const uint64_t nbArchiveFileListingConns = 1;
+      const uint64_t nbArchiveFileListingConns = 0;
       auto catalogueFactory = CatalogueFactoryFactory::create(m_dummyLog, catalogueLogin, nbConns,
         nbArchiveFileListingConns);
       m_catalogue = catalogueFactory->create();
-- 
GitLab