coverity 1116668: conditionally close ds provided connection

Signed-off-by: Daan Hoogland <[email protected]>

This closes #599


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/03b076cd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/03b076cd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/03b076cd

Branch: refs/heads/reporter
Commit: 03b076cd1bc7c0c4bac23c7741f884878f4a708a
Parents: 4f1eb8d
Author: Daan Hoogland <[email protected]>
Authored: Fri Jul 17 11:32:44 2015 +0200
Committer: Daan Hoogland <[email protected]>
Committed: Fri Jul 17 13:22:43 2015 +0200

----------------------------------------------------------------------
 framework/db/src/com/cloud/utils/db/Merovingian2.java | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03b076cd/framework/db/src/com/cloud/utils/db/Merovingian2.java
----------------------------------------------------------------------
diff --git a/framework/db/src/com/cloud/utils/db/Merovingian2.java 
b/framework/db/src/com/cloud/utils/db/Merovingian2.java
index 0c76fb5..fe0b24d 100644
--- a/framework/db/src/com/cloud/utils/db/Merovingian2.java
+++ b/framework/db/src/com/cloud/utils/db/Merovingian2.java
@@ -71,7 +71,15 @@ public class Merovingian2 extends StandardMBean implements 
MerovingianMBean {
             _concierge = new ConnectionConcierge("LockMaster", conn, true);
         } catch (SQLException e) {
             s_logger.error("Unable to get a new db connection", e);
-            throw new CloudRuntimeException("Unable to initialize a connection 
to the database for locking purposes: ", e);
+            throw new CloudRuntimeException("Unable to initialize a connection 
to the database for locking purposes", e);
+        } finally {
+            if (_concierge == null && conn != null) {
+                try {
+                    conn.close();
+                } catch (SQLException e) {
+                    s_logger.debug("closing connection failed after everything 
else.", e);
+                }
+            }
         }
     }
 

Reply via email to