From af012c12893736be4476f7ec9b45988cd9438592 Mon Sep 17 00:00:00 2001 From: Marco Zanon Date: Fri, 23 Oct 2015 14:23:13 +0000 Subject: [PATCH] Added a simple check to determine if a connection is closed. --- .../java/com/marcozanon/macaco/sql/MSqlConnection.java | 9 +++++++++ .../com/marcozanon/macaco/sql/MSqlConnectionPool.java | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/4.x/src/java/com/marcozanon/macaco/sql/MSqlConnection.java b/4.x/src/java/com/marcozanon/macaco/sql/MSqlConnection.java index 8a2d4f8..9ea683e 100644 --- a/4.x/src/java/com/marcozanon/macaco/sql/MSqlConnection.java +++ b/4.x/src/java/com/marcozanon/macaco/sql/MSqlConnection.java @@ -91,6 +91,15 @@ public class MSqlConnection extends MObject { } } + public boolean isClosed() throws MSqlConnectionFailureException { + try { + return this.getConnectionReference().isClosed(); + } + catch (SQLException exception) { + throw new MSqlConnectionFailureException("Could not determine the state.", exception); + } + } + protected void finalize() { try { this.close(); diff --git a/4.x/src/java/com/marcozanon/macaco/sql/MSqlConnectionPool.java b/4.x/src/java/com/marcozanon/macaco/sql/MSqlConnectionPool.java index 940eaff..9aedb6e 100644 --- a/4.x/src/java/com/marcozanon/macaco/sql/MSqlConnectionPool.java +++ b/4.x/src/java/com/marcozanon/macaco/sql/MSqlConnectionPool.java @@ -75,10 +75,13 @@ public class MSqlConnectionPool extends MObject { return connection; } - public synchronized void pushConnection(MSqlConnection connection) { + public synchronized void pushConnection(MSqlConnection connection) throws MSqlConnectionFailureException { if (null == connection) { throw new IllegalArgumentException("Invalid 'connection': null."); } + else if (connection.isClosed()) { + throw new IllegalArgumentException("Invalid 'connection': closed."); + } // LinkedList connectionPool = this.getConnectionPool(); if (this.getMaximumSize() >= connectionPool.size()) { -- 2.30.2