From a3ae8e064556cbb1786092da2f2921f30c694aaa Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Wed, 12 Aug 2015 01:04:06 +0200 Subject: [PATCH 1/2] coverity 1315774: improvement of code to negate false positive --- .../db/src/com/cloud/utils/db/DbUtil.java | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/framework/db/src/com/cloud/utils/db/DbUtil.java b/framework/db/src/com/cloud/utils/db/DbUtil.java index d8689050c63..9a21ca46b49 100644 --- a/framework/db/src/com/cloud/utils/db/DbUtil.java +++ b/framework/db/src/com/cloud/utils/db/DbUtil.java @@ -230,30 +230,26 @@ public class DbUtil { } public static boolean releaseGlobalLock(String name) { - Connection conn = getConnectionForGlobalLocks(name, false); - if (conn == null) { - s_logger.error("Unable to acquire DB connection for global lock system"); - assert (false); - return false; - } + try (Connection conn = getConnectionForGlobalLocks(name, false);) { + if (conn == null) { + s_logger.error("Unable to acquire DB connection for global lock system"); + assert (false); + return false; + } - PreparedStatement pstmt = null; - ResultSet rs = null; - try { - pstmt = conn.prepareStatement("SELECT COALESCE(RELEASE_LOCK(?), 0)"); - pstmt.setString(1, name); - rs = pstmt.executeQuery(); - if (rs != null && rs.first()) - return rs.getInt(1) > 0; - s_logger.error("releaseGlobalLock:RELEASE_LOCK() returns unexpected result"); + try (PreparedStatement pstmt = conn.prepareStatement("SELECT COALESCE(RELEASE_LOCK(?), 0)");) { + pstmt.setString(1, name); + try (ResultSet rs = pstmt.executeQuery();) { + if (rs != null && rs.first()) { + return rs.getInt(1) > 0; + } + s_logger.error("releaseGlobalLock:RELEASE_LOCK() returns unexpected result"); + } + } } catch (SQLException e) { s_logger.error("RELEASE_LOCK() throws exception ", e); } catch (Throwable e) { s_logger.error("RELEASE_LOCK() throws exception ", e); - } finally { - closeResultSet(rs); - closeStatement(pstmt); - closeConnection(conn); } return false; } From 1ab3b9659475e8c9f02954d9f47ac1c5a8636e25 Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Wed, 12 Aug 2015 01:10:31 +0200 Subject: [PATCH 2/2] coverity 1315775: proper getting of networkLabel --- .../src/com/cloud/upgrade/dao/Upgrade30xBase.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade30xBase.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade30xBase.java index 2ca562aca20..47b877d5aa5 100644 --- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade30xBase.java +++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade30xBase.java @@ -34,20 +34,15 @@ public abstract class Upgrade30xBase extends LegacyDbUpgrade { protected String getNetworkLabelFromConfig(Connection conn, String name) { String sql = "SELECT value FROM `cloud`.`configuration` where name = ?"; String networkLabel = null; - PreparedStatement pstmt = null; - ResultSet rs = null; - try { - pstmt = conn.prepareStatement(sql); + try (PreparedStatement pstmt = conn.prepareStatement(sql);) { pstmt.setString(1,name); - rs = pstmt.executeQuery(); - if (rs.next()) { - networkLabel = rs.getString(1); + try (ResultSet rs = pstmt.executeQuery();) { + if (rs.next()) { + networkLabel = rs.getString(1); + } } } catch (SQLException e) { throw new CloudRuntimeException("Unable to fetch network label from configuration", e); - } finally { - closeAutoCloseable(rs); - closeAutoCloseable(pstmt); } return networkLabel; }