Fixed a bug which prevented the connection pool to return a connection when minimum...
authorMarco Zanon <info@marcozanon.com>
Thu, 12 Jan 2017 11:13:13 +0000 (11:13 +0000)
committerMarco Zanon <info@marcozanon.com>
Thu, 12 Jan 2017 11:13:13 +0000 (11:13 +0000)
4.x/src/java/com/marcozanon/macaco/database/MDatabaseConnectionPool.java

index 16e586e334253374d4243038fba64ef775ebcd87..1c992cda84c171e4772fe88280e370ab9d214985 100644 (file)
@@ -69,7 +69,13 @@ public class MDatabaseConnectionPool extends MObject {
 
     public synchronized MDatabaseConnection popDatabaseConnection() throws MDatabaseConnectionFailureException {
         LinkedList<MDatabaseConnection> databaseConnections = this.getDatabaseConnections();
-        MDatabaseConnection databaseConnection = databaseConnections.removeLast();
+        MDatabaseConnection databaseConnection = null;
+        if (0 == databaseConnections.size()) {
+            databaseConnection = this.getDatabaseConnectionGenerator().getNewDatabaseConnection();
+        }
+        else {
+            databaseConnection = databaseConnections.removeLast();
+        }
         if (this.getMinimumSize() > databaseConnections.size()) {
             databaseConnections.add(this.getDatabaseConnectionGenerator().getNewDatabaseConnection());
         }