From 0cd8c06f7dceaf999acf202862c5d1d580e7aa0e Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Tue, 7 Jul 2015 23:13:05 +0200 Subject: [PATCH] coverity 1116680: update datacentre for ip adresses these resources are created often and will create serious leakage if closing failes Signed-off-by: Daan Hoogland --- .../network/StorageNetworkManagerImpl.java | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/server/src/com/cloud/network/StorageNetworkManagerImpl.java b/server/src/com/cloud/network/StorageNetworkManagerImpl.java index ea3bf5ccfdd..76a51d97d8e 100644 --- a/server/src/com/cloud/network/StorageNetworkManagerImpl.java +++ b/server/src/com/cloud/network/StorageNetworkManagerImpl.java @@ -104,22 +104,21 @@ public class StorageNetworkManagerImpl extends ManagerBase implements StorageNet String insertSql = "INSERT INTO `cloud`.`op_dc_storage_network_ip_address` (range_id, ip_address, mac_address, taken) VALUES (?, ?, (select mac_address from `cloud`.`data_center` where id=?), ?)"; String updateSql = "UPDATE `cloud`.`data_center` set mac_address = mac_address+1 where id=?"; - PreparedStatement stmt = null; - Connection conn = txn.getConnection(); + try (Connection conn = txn.getConnection();) { + while (startIPLong <= endIPLong) { + try (PreparedStatement stmt_insert = conn.prepareStatement(insertSql); ) { + stmt_insert.setLong(1, rangeId); + stmt_insert.setString(2, NetUtils.long2Ip(startIPLong++)); + stmt_insert.setLong(3, zoneId); + stmt_insert.setNull(4, java.sql.Types.DATE); + stmt_insert.executeUpdate(); + } - while (startIPLong <= endIPLong) { - stmt = conn.prepareStatement(insertSql); - stmt.setLong(1, rangeId); - stmt.setString(2, NetUtils.long2Ip(startIPLong++)); - stmt.setLong(3, zoneId); - stmt.setNull(4, java.sql.Types.DATE); - stmt.executeUpdate(); - stmt.close(); - - stmt = txn.prepareStatement(updateSql); - stmt.setLong(1, zoneId); - stmt.executeUpdate(); - stmt.close(); + try (PreparedStatement stmt_update = txn.prepareStatement(updateSql);) { + stmt_update.setLong(1, zoneId); + stmt_update.executeUpdate(); + } + } } }