You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by hu...@apache.org on 2014/06/13 14:52:03 UTC
git commit: updated refs/heads/master to 0c28f36
Repository: cloudstack
Updated Branches:
refs/heads/master 515ef0de4 -> 0c28f36ff
Fix a number of resource leaks reported by Coverity
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0c28f36f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0c28f36f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0c28f36f
Branch: refs/heads/master
Commit: 0c28f36ff1b5e7b0ff2494b61c6dba4acb229337
Parents: 515ef0d
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Fri Jun 13 14:41:44 2014 +0200
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Fri Jun 13 14:42:35 2014 +0200
----------------------------------------------------------------------
.../src/com/cloud/vm/dao/UserVmDaoImpl.java | 46 ++++---
.../db/src/com/cloud/utils/db/Merovingian2.java | 8 +-
.../com/cloud/utils/db/TransactionLegacy.java | 138 ++++++++++---------
.../jobs/dao/AsyncJobJoinMapDaoImpl.java | 65 ++-------
.../cloud/server/ConfigurationServerImpl.java | 42 +++---
5 files changed, 129 insertions(+), 170 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0c28f36f/engine/schema/src/com/cloud/vm/dao/UserVmDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/vm/dao/UserVmDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/UserVmDaoImpl.java
index f35135f..65a92aa 100755
--- a/engine/schema/src/com/cloud/vm/dao/UserVmDaoImpl.java
+++ b/engine/schema/src/com/cloud/vm/dao/UserVmDaoImpl.java
@@ -79,28 +79,28 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
ResourceTagDao _tagsDao;
private static final String LIST_PODS_HAVING_VMS_FOR_ACCOUNT =
- "SELECT pod_id FROM cloud.vm_instance WHERE data_center_id = ? AND account_id = ? AND pod_id IS NOT NULL AND (state = 'Running' OR state = 'Stopped') "
- + "GROUP BY pod_id HAVING count(id) > 0 ORDER BY count(id) DESC";
+ "SELECT pod_id FROM cloud.vm_instance WHERE data_center_id = ? AND account_id = ? AND pod_id IS NOT NULL AND (state = 'Running' OR state = 'Stopped') "
+ + "GROUP BY pod_id HAVING count(id) > 0 ORDER BY count(id) DESC";
private static final String VM_DETAILS = "select vm_instance.id, "
- + "account.id, account.account_name, account.type, domain.name, instance_group.id, instance_group.name,"
- + "data_center.id, data_center.name, data_center.is_security_group_enabled, host.id, host.name, "
- + "vm_template.id, vm_template.name, vm_template.display_text, iso.id, iso.name, "
- + "vm_template.enable_password, service_offering.id, disk_offering.name, storage_pool.id, storage_pool.pool_type, "
- + "service_offering.cpu, service_offering.speed, service_offering.ram_size, volumes.id, volumes.device_id, volumes.volume_type, security_group.id, security_group.name, "
- + "security_group.description, nics.id, nics.ip4_address, nics.default_nic, nics.gateway, nics.network_id, nics.netmask, nics.mac_address, nics.broadcast_uri, " +
- "nics.isolation_uri, "
- + "networks.traffic_type, networks.guest_type, user_ip_address.id, user_ip_address.public_ip_address from vm_instance "
- + "left join account on vm_instance.account_id=account.id " + "left join domain on vm_instance.domain_id=domain.id "
- + "left join instance_group_vm_map on vm_instance.id=instance_group_vm_map.instance_id "
- + "left join instance_group on instance_group_vm_map.group_id=instance_group.id " + "left join data_center on vm_instance.data_center_id=data_center.id "
- + "left join host on vm_instance.host_id=host.id " + "left join vm_template on vm_instance.vm_template_id=vm_template.id "
- + "left join user_vm on vm_instance.id=user_vm.id " + "left join vm_template iso on iso.id=user_vm.iso_id "
- + "left join service_offering on vm_instance.service_offering_id=service_offering.id "
- + "left join disk_offering on vm_instance.service_offering_id=disk_offering.id " + "left join volumes on vm_instance.id=volumes.instance_id "
- + "left join storage_pool on volumes.pool_id=storage_pool.id " + "left join security_group_vm_map on vm_instance.id=security_group_vm_map.instance_id "
- + "left join security_group on security_group_vm_map.security_group_id=security_group.id " + "left join nics on vm_instance.id=nics.instance_id "
- + "left join networks on nics.network_id=networks.id " + "left join user_ip_address on user_ip_address.vm_id=vm_instance.id " + "where vm_instance.id in (";
+ + "account.id, account.account_name, account.type, domain.name, instance_group.id, instance_group.name,"
+ + "data_center.id, data_center.name, data_center.is_security_group_enabled, host.id, host.name, "
+ + "vm_template.id, vm_template.name, vm_template.display_text, iso.id, iso.name, "
+ + "vm_template.enable_password, service_offering.id, disk_offering.name, storage_pool.id, storage_pool.pool_type, "
+ + "service_offering.cpu, service_offering.speed, service_offering.ram_size, volumes.id, volumes.device_id, volumes.volume_type, security_group.id, security_group.name, "
+ + "security_group.description, nics.id, nics.ip4_address, nics.default_nic, nics.gateway, nics.network_id, nics.netmask, nics.mac_address, nics.broadcast_uri, " +
+ "nics.isolation_uri, "
+ + "networks.traffic_type, networks.guest_type, user_ip_address.id, user_ip_address.public_ip_address from vm_instance "
+ + "left join account on vm_instance.account_id=account.id " + "left join domain on vm_instance.domain_id=domain.id "
+ + "left join instance_group_vm_map on vm_instance.id=instance_group_vm_map.instance_id "
+ + "left join instance_group on instance_group_vm_map.group_id=instance_group.id " + "left join data_center on vm_instance.data_center_id=data_center.id "
+ + "left join host on vm_instance.host_id=host.id " + "left join vm_template on vm_instance.vm_template_id=vm_template.id "
+ + "left join user_vm on vm_instance.id=user_vm.id " + "left join vm_template iso on iso.id=user_vm.iso_id "
+ + "left join service_offering on vm_instance.service_offering_id=service_offering.id "
+ + "left join disk_offering on vm_instance.service_offering_id=disk_offering.id " + "left join volumes on vm_instance.id=volumes.instance_id "
+ + "left join storage_pool on volumes.pool_id=storage_pool.id " + "left join security_group_vm_map on vm_instance.id=security_group_vm_map.instance_id "
+ + "left join security_group on security_group_vm_map.security_group_id=security_group.id " + "left join nics on vm_instance.id=nics.instance_id "
+ + "left join networks on nics.network_id=networks.id " + "left join user_ip_address on user_ip_address.vm_id=vm_instance.id " + "where vm_instance.id in (";
private static final int VM_DETAILS_BATCH_SIZE = 100;
@@ -186,7 +186,7 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
AccountDataCenterVirtualSearch.and("account", AccountDataCenterVirtualSearch.entity().getAccountId(), SearchCriteria.Op.EQ);
AccountDataCenterVirtualSearch.and("dc", AccountDataCenterVirtualSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ);
AccountDataCenterVirtualSearch.join("nicSearch", nicSearch, AccountDataCenterVirtualSearch.entity().getId(), nicSearch.entity().getInstanceId(),
- JoinBuilder.JoinType.INNER);
+ JoinBuilder.JoinType.INNER);
AccountDataCenterVirtualSearch.done();
UserVmByIsoSearch = createSearchBuilder();
@@ -217,7 +217,7 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
@Override
public void updateVM(long id, String displayName, boolean enable, Long osTypeId, String userData, boolean displayVm,
- boolean isDynamicallyScalable, String customId, String hostName, String instanceName) {
+ boolean isDynamicallyScalable, String customId, String hostName, String instanceName) {
UserVmVO vo = createForUpdate();
vo.setDisplayName(displayName);
vo.setHaEnabled(enable);
@@ -413,6 +413,8 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
rs.close();
curr_index += VM_DETAILS_BATCH_SIZE;
}
+ if (pstmt != null)
+ pstmt.close();
}
if (curr_index < userVmDataList.size()) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0c28f36f/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 6eeea9f..89f9e61 100644
--- a/framework/db/src/com/cloud/utils/db/Merovingian2.java
+++ b/framework/db/src/com/cloud/utils/db/Merovingian2.java
@@ -40,7 +40,7 @@ public class Merovingian2 extends StandardMBean implements MerovingianMBean {
private static final Logger s_logger = Logger.getLogger(Merovingian2.class);
private static final String ACQUIRE_SQL =
- "INSERT INTO op_lock (op_lock.key, op_lock.mac, op_lock.ip, op_lock.thread, op_lock.acquired_on, waiters) VALUES (?, ?, ?, ?, ?, 1)";
+ "INSERT INTO op_lock (op_lock.key, op_lock.mac, op_lock.ip, op_lock.thread, op_lock.acquired_on, waiters) VALUES (?, ?, ?, ?, ?, 1)";
private static final String INCREMENT_SQL = "UPDATE op_lock SET waiters=waiters+1 where op_lock.key=? AND op_lock.mac=? AND op_lock.ip=? AND op_lock.thread=?";
private static final String SELECT_SQL = "SELECT op_lock.key, mac, ip, thread, acquired_on, waiters FROM op_lock";
private static final String INQUIRE_SQL = SELECT_SQL + " WHERE op_lock.key=?";
@@ -428,7 +428,7 @@ public class Merovingian2 extends StandardMBean implements MerovingianMBean {
pstmt.setInt(3, threadId);
int rows = pstmt.executeUpdate();
assert (false) : "Abandon hope, all ye who enter here....There were still " + rows + ":" + c +
- " locks not released when the transaction ended, check for lock not released or @DB is not added to the code that using the locks!";
+ " locks not released when the transaction ended, check for lock not released or @DB is not added to the code that using the locks!";
} catch (SQLException e) {
throw new CloudRuntimeException("Can't clear locks " + pstmt, e);
} finally {
@@ -444,9 +444,7 @@ public class Merovingian2 extends StandardMBean implements MerovingianMBean {
@Override
public boolean releaseLockAsLastResortAndIReallyKnowWhatIAmDoing(String key) {
s_logger.info("Releasing a lock from JMX lck-" + key);
- PreparedStatement pstmt = null;
- try {
- pstmt = _concierge.conn().prepareStatement(RELEASE_LOCK_SQL);
+ try (PreparedStatement pstmt = _concierge.conn().prepareStatement(RELEASE_LOCK_SQL)) {
pstmt.setString(1, key);
int rows = pstmt.executeUpdate();
return rows > 0;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0c28f36f/framework/db/src/com/cloud/utils/db/TransactionLegacy.java
----------------------------------------------------------------------
diff --git a/framework/db/src/com/cloud/utils/db/TransactionLegacy.java b/framework/db/src/com/cloud/utils/db/TransactionLegacy.java
index ac0ea21..f50cbe2 100755
--- a/framework/db/src/com/cloud/utils/db/TransactionLegacy.java
+++ b/framework/db/src/com/cloud/utils/db/TransactionLegacy.java
@@ -16,6 +16,7 @@
// under the License.
package com.cloud.utils.db;
+import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
@@ -60,7 +61,7 @@ import com.cloud.utils.mgmt.JmxUtil;
* Note that this class is not synchronous but it doesn't need to be because
* it is stored with TLS and is one per thread. Use appropriately.
*/
-public class TransactionLegacy {
+public class TransactionLegacy implements Closeable {
private static final Logger s_logger = Logger.getLogger(Transaction.class.getName() + "." + "Transaction");
private static final Logger s_stmtLogger = Logger.getLogger(Transaction.class.getName() + "." + "Statement");
private static final Logger s_lockLogger = Logger.getLogger(Transaction.class.getName() + "." + "Lock");
@@ -114,7 +115,7 @@ public class TransactionLegacy {
assert txn != null : "No Transaction on stack. Did you mark the method with @DB?";
assert checkAnnotation(4, txn) : "Did you even read the guide to use Transaction...IOW...other people's code? Try method can't be private. What about @DB? hmmm... could that be it? " +
- txn;
+ txn;
}
return txn;
}
@@ -326,11 +327,11 @@ public class TransactionLegacy {
}
str.append("-")
- .append(stacks[i].getClassName().substring(stacks[i].getClassName().lastIndexOf(".") + 1))
- .append(".")
- .append(stacks[i].getMethodName())
- .append(":")
- .append(stacks[i].getLineNumber());
+ .append(stacks[i].getClassName().substring(stacks[i].getClassName().lastIndexOf(".") + 1))
+ .append(".")
+ .append(stacks[i].getMethodName())
+ .append(":")
+ .append(stacks[i].getLineNumber());
j++;
i++;
}
@@ -340,7 +341,7 @@ public class TransactionLegacy {
return "";
}
- public TransactionLegacy(final String name, final boolean forLocking, final short databaseId) {
+ private TransactionLegacy(final String name, final boolean forLocking, final short databaseId) {
_name = name;
_conn = null;
_stack = new LinkedList<StackElement>();
@@ -557,42 +558,42 @@ public class TransactionLegacy {
public Connection getConnection() throws SQLException {
if (_conn == null) {
switch (_dbId) {
- case CLOUD_DB:
- if (s_ds != null) {
- _conn = s_ds.getConnection();
- } else {
- s_logger.warn("A static-initialized variable becomes null, process is dying?");
- throw new CloudRuntimeException("Database is not initialized, process is dying?");
- }
- break;
- case USAGE_DB:
- if (s_usageDS != null) {
- _conn = s_usageDS.getConnection();
- } else {
- s_logger.warn("A static-initialized variable becomes null, process is dying?");
- throw new CloudRuntimeException("Database is not initialized, process is dying?");
- }
- break;
- case AWSAPI_DB:
- if (s_awsapiDS != null) {
- _conn = s_awsapiDS.getConnection();
- } else {
- s_logger.warn("A static-initialized variable becomes null, process is dying?");
- throw new CloudRuntimeException("Database is not initialized, process is dying?");
- }
- break;
+ case CLOUD_DB:
+ if (s_ds != null) {
+ _conn = s_ds.getConnection();
+ } else {
+ s_logger.warn("A static-initialized variable becomes null, process is dying?");
+ throw new CloudRuntimeException("Database is not initialized, process is dying?");
+ }
+ break;
+ case USAGE_DB:
+ if (s_usageDS != null) {
+ _conn = s_usageDS.getConnection();
+ } else {
+ s_logger.warn("A static-initialized variable becomes null, process is dying?");
+ throw new CloudRuntimeException("Database is not initialized, process is dying?");
+ }
+ break;
+ case AWSAPI_DB:
+ if (s_awsapiDS != null) {
+ _conn = s_awsapiDS.getConnection();
+ } else {
+ s_logger.warn("A static-initialized variable becomes null, process is dying?");
+ throw new CloudRuntimeException("Database is not initialized, process is dying?");
+ }
+ break;
- case SIMULATOR_DB:
- if (s_simulatorDS != null) {
- _conn = s_simulatorDS.getConnection();
- } else {
- s_logger.warn("A static-initialized variable becomes null, process is dying?");
- throw new CloudRuntimeException("Database is not initialized, process is dying?");
- }
- break;
- default:
+ case SIMULATOR_DB:
+ if (s_simulatorDS != null) {
+ _conn = s_simulatorDS.getConnection();
+ } else {
+ s_logger.warn("A static-initialized variable becomes null, process is dying?");
+ throw new CloudRuntimeException("Database is not initialized, process is dying?");
+ }
+ break;
+ default:
- throw new CloudRuntimeException("No database selected for the transaction");
+ throw new CloudRuntimeException("No database selected for the transaction");
}
_conn.setAutoCommit(!_txn);
@@ -604,7 +605,7 @@ public class TransactionLegacy {
_stack.push(new StackElement(CREATE_CONN, null));
if (s_connLogger.isTraceEnabled()) {
s_connLogger.trace("Creating a DB connection with " + (_txn ? " txn: " : " no txn: ") + " for " + _dbId + ": dbconn" + System.identityHashCode(_conn) +
- ". Stack: " + buildName());
+ ". Stack: " + buildName());
}
} else {
s_logger.trace("conn: Using existing DB connection");
@@ -666,6 +667,7 @@ public class TransactionLegacy {
}
}
+ @Override
public void close() {
removeUpTo(CURRENT_TXN, null);
@@ -981,7 +983,7 @@ public class TransactionLegacy {
return _stack;
}
- protected TransactionLegacy() {
+ private TransactionLegacy() {
_name = null;
_conn = null;
_stack = null;
@@ -1094,18 +1096,18 @@ public class TransactionLegacy {
}
final GenericObjectPool cloudConnectionPool =
- new GenericObjectPool(null, cloudMaxActive, GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION, cloudMaxWait, cloudMaxIdle, cloudTestOnBorrow, false,
- cloudTimeBtwEvictionRunsMillis, 1, cloudMinEvcitableIdleTimeMillis, cloudTestWhileIdle);
+ new GenericObjectPool(null, cloudMaxActive, GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION, cloudMaxWait, cloudMaxIdle, cloudTestOnBorrow, false,
+ cloudTimeBtwEvictionRunsMillis, 1, cloudMinEvcitableIdleTimeMillis, cloudTestWhileIdle);
final ConnectionFactory cloudConnectionFactory =
- new DriverManagerConnectionFactory("jdbc:mysql://" + cloudHost + (s_dbHAEnabled ? "," + cloudSlaves : "") + ":" + cloudPort + "/" + cloudDbName +
- "?autoReconnect=" + cloudAutoReconnect + (url != null ? "&" + url : "") + (useSSL ? "&useSSL=true" : "") +
- (s_dbHAEnabled ? "&" + cloudDbHAParams : "") + (s_dbHAEnabled ? "&loadBalanceStrategy=" + loadBalanceStrategy : ""), cloudUsername, cloudPassword);
+ new DriverManagerConnectionFactory("jdbc:mysql://" + cloudHost + (s_dbHAEnabled ? "," + cloudSlaves : "") + ":" + cloudPort + "/" + cloudDbName +
+ "?autoReconnect=" + cloudAutoReconnect + (url != null ? "&" + url : "") + (useSSL ? "&useSSL=true" : "") +
+ (s_dbHAEnabled ? "&" + cloudDbHAParams : "") + (s_dbHAEnabled ? "&loadBalanceStrategy=" + loadBalanceStrategy : ""), cloudUsername, cloudPassword);
final KeyedObjectPoolFactory poolableObjFactory = (cloudPoolPreparedStatements ? new StackKeyedObjectPoolFactory() : null);
final PoolableConnectionFactory cloudPoolableConnectionFactory =
- new PoolableConnectionFactory(cloudConnectionFactory, cloudConnectionPool, poolableObjFactory, cloudValidationQuery, false, false, isolationLevel);
+ new PoolableConnectionFactory(cloudConnectionFactory, cloudConnectionPool, poolableObjFactory, cloudValidationQuery, false, false, isolationLevel);
// Default Data Source for CloudStack
s_ds = new PoolingDataSource(cloudPoolableConnectionFactory.getPool());
@@ -1123,16 +1125,16 @@ public class TransactionLegacy {
final String usageUrl = dbProps.getProperty("db.usage.url.params");
final GenericObjectPool usageConnectionPool =
- new GenericObjectPool(null, usageMaxActive, GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION, usageMaxWait, usageMaxIdle);
+ new GenericObjectPool(null, usageMaxActive, GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION, usageMaxWait, usageMaxIdle);
final ConnectionFactory usageConnectionFactory =
- new DriverManagerConnectionFactory("jdbc:mysql://" + usageHost + (s_dbHAEnabled ? "," + dbProps.getProperty("db.cloud.slaves") : "") + ":" + usagePort +
- "/" + usageDbName + "?autoReconnect=" + usageAutoReconnect + (usageUrl != null ? "&" + usageUrl : "") +
- (s_dbHAEnabled ? "&" + getDBHAParams("usage", dbProps) : "") + (s_dbHAEnabled ? "&loadBalanceStrategy=" + loadBalanceStrategy : ""), usageUsername,
- usagePassword);
+ new DriverManagerConnectionFactory("jdbc:mysql://" + usageHost + (s_dbHAEnabled ? "," + dbProps.getProperty("db.cloud.slaves") : "") + ":" + usagePort +
+ "/" + usageDbName + "?autoReconnect=" + usageAutoReconnect + (usageUrl != null ? "&" + usageUrl : "") +
+ (s_dbHAEnabled ? "&" + getDBHAParams("usage", dbProps) : "") + (s_dbHAEnabled ? "&loadBalanceStrategy=" + loadBalanceStrategy : ""), usageUsername,
+ usagePassword);
final PoolableConnectionFactory usagePoolableConnectionFactory =
- new PoolableConnectionFactory(usageConnectionFactory, usageConnectionPool, new StackKeyedObjectPoolFactory(), null, false, false);
+ new PoolableConnectionFactory(usageConnectionFactory, usageConnectionPool, new StackKeyedObjectPoolFactory(), null, false, false);
// Data Source for usage server
s_usageDS = new PoolingDataSource(usagePoolableConnectionFactory.getPool());
@@ -1140,13 +1142,13 @@ public class TransactionLegacy {
// Configure awsapi db
final String awsapiDbName = dbProps.getProperty("db.awsapi.name");
final GenericObjectPool awsapiConnectionPool =
- new GenericObjectPool(null, usageMaxActive, GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION, usageMaxWait, usageMaxIdle);
+ new GenericObjectPool(null, usageMaxActive, GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION, usageMaxWait, usageMaxIdle);
final ConnectionFactory awsapiConnectionFactory =
- new DriverManagerConnectionFactory("jdbc:mysql://" + cloudHost + (s_dbHAEnabled ? "," + cloudSlaves : "") + ":" + cloudPort + "/" + awsapiDbName +
- "?autoReconnect=" + cloudAutoReconnect + (s_dbHAEnabled ? "&" + cloudDbHAParams : "") +
- (s_dbHAEnabled ? "&loadBalanceStrategy=" + loadBalanceStrategy : ""), cloudUsername, cloudPassword);
+ new DriverManagerConnectionFactory("jdbc:mysql://" + cloudHost + (s_dbHAEnabled ? "," + cloudSlaves : "") + ":" + cloudPort + "/" + awsapiDbName +
+ "?autoReconnect=" + cloudAutoReconnect + (s_dbHAEnabled ? "&" + cloudDbHAParams : "") +
+ (s_dbHAEnabled ? "&loadBalanceStrategy=" + loadBalanceStrategy : ""), cloudUsername, cloudPassword);
final PoolableConnectionFactory awsapiPoolableConnectionFactory =
- new PoolableConnectionFactory(awsapiConnectionFactory, awsapiConnectionPool, new StackKeyedObjectPoolFactory(), null, false, false);
+ new PoolableConnectionFactory(awsapiConnectionFactory, awsapiConnectionPool, new StackKeyedObjectPoolFactory(), null, false, false);
// Data Source for awsapi
s_awsapiDS = new PoolingDataSource(awsapiPoolableConnectionFactory.getPool());
@@ -1164,14 +1166,14 @@ public class TransactionLegacy {
final boolean simulatorAutoReconnect = Boolean.parseBoolean(dbProps.getProperty("db.simulator.autoReconnect"));
final GenericObjectPool simulatorConnectionPool =
- new GenericObjectPool(null, simulatorMaxActive, GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION, simulatorMaxWait, simulatorMaxIdle);
+ new GenericObjectPool(null, simulatorMaxActive, GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION, simulatorMaxWait, simulatorMaxIdle);
final ConnectionFactory simulatorConnectionFactory =
- new DriverManagerConnectionFactory("jdbc:mysql://" + simulatorHost + ":" + simulatorPort + "/" + simulatorDbName + "?autoReconnect=" +
- simulatorAutoReconnect, simulatorUsername, simulatorPassword);
+ new DriverManagerConnectionFactory("jdbc:mysql://" + simulatorHost + ":" + simulatorPort + "/" + simulatorDbName + "?autoReconnect=" +
+ simulatorAutoReconnect, simulatorUsername, simulatorPassword);
final PoolableConnectionFactory simulatorPoolableConnectionFactory =
- new PoolableConnectionFactory(simulatorConnectionFactory, simulatorConnectionPool, new StackKeyedObjectPoolFactory(), null, false, false);
+ new PoolableConnectionFactory(simulatorConnectionFactory, simulatorConnectionPool, new StackKeyedObjectPoolFactory(), null, false, false);
s_simulatorDS = new PoolingDataSource(simulatorPoolableConnectionFactory.getPool());
} catch (Exception e) {
s_logger.debug("Simulator DB properties are not available. Not initializing simulator DS");
@@ -1181,8 +1183,8 @@ public class TransactionLegacy {
s_usageDS = getDefaultDataSource("cloud_usage");
s_simulatorDS = getDefaultDataSource("cloud_simulator");
s_logger.warn(
- "Unable to load db configuration, using defaults with 5 connections. Falling back on assumed datasource on localhost:3306 using username:password=cloud:cloud. Please check your configuration",
- e);
+ "Unable to load db configuration, using defaults with 5 connections. Falling back on assumed datasource on localhost:3306 using username:password=cloud:cloud. Please check your configuration",
+ e);
}
}
@@ -1203,7 +1205,7 @@ public class TransactionLegacy {
final ConnectionFactory connectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://localhost:3306/" + database, "cloud", "cloud");
final PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, connectionPool, null, null, false, true);
return new PoolingDataSource(
- /* connectionPool */poolableConnectionFactory.getPool());
+ /* connectionPool */poolableConnectionFactory.getPool());
}
/**
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0c28f36f/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/AsyncJobJoinMapDaoImpl.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/AsyncJobJoinMapDaoImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/AsyncJobJoinMapDaoImpl.java
index 7bc29db..d70864c 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/AsyncJobJoinMapDaoImpl.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/AsyncJobJoinMapDaoImpl.java
@@ -75,7 +75,7 @@ public class AsyncJobJoinMapDaoImpl extends GenericDaoBase<AsyncJobJoinMapVO, Lo
@Override
public Long joinJob(long jobId, long joinJobId, long joinMsid, long wakeupIntervalMs, long expirationMs, Long syncSourceId, String wakeupHandler,
- String wakeupDispatcher) {
+ String wakeupDispatcher) {
AsyncJobJoinMapVO record = new AsyncJobJoinMapVO();
record.setJobId(jobId);
@@ -214,8 +214,7 @@ public class AsyncJobJoinMapDaoImpl extends GenericDaoBase<AsyncJobJoinMapVO, Lo
List<Long> standaloneList = new ArrayList<Long>();
TransactionLegacy txn = TransactionLegacy.currentTxn();
String sql = "SELECT job_id FROM async_job_join_map WHERE join_job_id = ? AND job_id NOT IN (SELECT content_id FROM sync_queue_item)";
- try {
- PreparedStatement pstmt = txn.prepareStatement(sql);
+ try (PreparedStatement pstmt = txn.prepareStatement(sql)) {
pstmt.setLong(1, joinedJobId);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
@@ -231,19 +230,22 @@ public class AsyncJobJoinMapDaoImpl extends GenericDaoBase<AsyncJobJoinMapVO, Lo
public List<Long> findJobsToWakeBetween(Date cutDate) {
List<Long> standaloneList = new ArrayList<Long>();
TransactionLegacy txn = TransactionLegacy.currentTxn();
- try {
- String sql = "SELECT job_id FROM async_job_join_map WHERE next_wakeup < ? AND expiration > ? AND job_id NOT IN (SELECT content_id FROM sync_queue_item)";
- PreparedStatement pstmt = txn.prepareStatement(sql);
+
+ String sql = "SELECT job_id FROM async_job_join_map WHERE next_wakeup < ? AND expiration > ? AND job_id NOT IN (SELECT content_id FROM sync_queue_item)";
+ try (PreparedStatement pstmt = txn.prepareStatement(sql)) {
pstmt.setString(1, DateUtil.getDateDisplayString(TimeZone.getTimeZone("GMT"), cutDate));
pstmt.setString(2, DateUtil.getDateDisplayString(TimeZone.getTimeZone("GMT"), cutDate));
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
standaloneList.add(rs.getLong(1));
}
+ } catch (SQLException e) {
+ throw new CloudRuntimeException("Unable to handle SQL exception", e);
+ }
- // update for next wake-up
- sql = "UPDATE async_job_join_map SET next_wakeup=DATE_ADD(next_wakeup, INTERVAL wakeup_interval SECOND) WHERE next_wakeup < ? AND expiration > ?";
- pstmt = txn.prepareStatement(sql);
+ // update for next wake-up
+ sql = "UPDATE async_job_join_map SET next_wakeup=DATE_ADD(next_wakeup, INTERVAL wakeup_interval SECOND) WHERE next_wakeup < ? AND expiration > ?";
+ try (PreparedStatement pstmt = txn.prepareStatement(sql)) {
pstmt.setString(1, DateUtil.getDateDisplayString(TimeZone.getTimeZone("GMT"), cutDate));
pstmt.setString(2, DateUtil.getDateDisplayString(TimeZone.getTimeZone("GMT"), cutDate));
pstmt.executeUpdate();
@@ -252,51 +254,6 @@ public class AsyncJobJoinMapDaoImpl extends GenericDaoBase<AsyncJobJoinMapVO, Lo
} catch (SQLException e) {
throw new CloudRuntimeException("Unable to handle SQL exception", e);
}
-
}
-// @Override
-// public List<Long> wakeupByJoinedJobCompletion(long joinedJobId) {
-// List<Long> standaloneList = new ArrayList<Long>();
-//
-// TransactionLegacy txn = TransactionLegacy.currentTxn();
-// PreparedStatement pstmt = null;
-// try {
-// txn.start();
-//
-// //
-// // performance sensitive processing, do it in plain SQL
-// //
-// String sql = "UPDATE async_job SET job_pending_signals=? WHERE id IN " +
-// "(SELECT job_id FROM async_job_join_map WHERE join_job_id = ?)";
-// pstmt = txn.prepareStatement(sql);
-// pstmt.setInt(1, AsyncJob.Contants.SIGNAL_MASK_WAKEUP);
-// pstmt.setLong(2, joinedJobId);
-// pstmt.executeUpdate();
-// pstmt.close();
-//
-// sql = "UPDATE sync_queue_item SET queue_proc_msid=NULL, queue_proc_number=NULL WHERE content_id IN " +
-// "(SELECT job_id FROM async_job_join_map WHERE join_job_id = ?)";
-// pstmt = txn.prepareStatement(sql);
-// pstmt.setLong(1, joinedJobId);
-// pstmt.executeUpdate();
-// pstmt.close();
-//
-// sql = "SELECT job_id FROM async_job_join_map WHERE join_job_id = ? AND job_id NOT IN (SELECT content_id FROM sync_queue_item)";
-// pstmt = txn.prepareStatement(sql);
-// pstmt.setLong(1, joinedJobId);
-// ResultSet rs = pstmt.executeQuery();
-// while(rs.next()) {
-// standaloneList.add(rs.getLong(1));
-// }
-// rs.close();
-// pstmt.close();
-//
-// txn.commit();
-// } catch (SQLException e) {
-// s_logger.error("Unexpected exception", e);
-// }
-//
-// return standaloneList;
-// }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0c28f36f/server/src/com/cloud/server/ConfigurationServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java b/server/src/com/cloud/server/ConfigurationServerImpl.java
index 95c9611..694f3cd 100755
--- a/server/src/com/cloud/server/ConfigurationServerImpl.java
+++ b/server/src/com/cloud/server/ConfigurationServerImpl.java
@@ -745,12 +745,12 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
// FIXME: take a global database lock here for safety.
boolean onWindows = isOnWindows();
if(!onWindows) {
- Script.runSimpleBashScript("if [ -f " + privkeyfile + " ]; then rm -f " + privkeyfile + "; fi; ssh-keygen -t rsa -N '' -f " + privkeyfile + " -q");
+ Script.runSimpleBashScript("if [ -f " + privkeyfile + " ]; then rm -f " + privkeyfile + "; fi; ssh-keygen -t rsa -N '' -f " + privkeyfile + " -q");
}
byte[] arr1 = new byte[4094]; // configuration table column value size
- try {
- new DataInputStream(new FileInputStream(privkeyfile)).readFully(arr1);
+ try (DataInputStream dis = new DataInputStream(new FileInputStream(privkeyfile))) {
+ dis.readFully(arr1);
} catch (EOFException e) {
} catch (Exception e) {
s_logger.error("Cannot read the private key file", e);
@@ -758,8 +758,8 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
}
String privateKey = new String(arr1).trim();
byte[] arr2 = new byte[4094]; // configuration table column value size
- try {
- new DataInputStream(new FileInputStream(pubkeyfile)).readFully(arr2);
+ try (DataInputStream dis = new DataInputStream(new FileInputStream(pubkeyfile))) {
+ dis.readFully(arr2);
} catch (EOFException e) {
} catch (Exception e) {
s_logger.warn("Cannot read the public key file", e);
@@ -893,9 +893,9 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
}
Script command = null;
if(isOnWindows()) {
- command = new Script("python", s_logger);
+ command = new Script("python", s_logger);
} else {
- command = new Script("/bin/bash", s_logger);
+ command = new Script("/bin/bash", s_logger);
}
command.add(scriptPath);
command.add(publicKeyPath);
@@ -911,20 +911,20 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
}
protected String getInjectScript() {
- String injectScript = null;
- boolean onWindows = isOnWindows();
- if(onWindows) {
- injectScript = "scripts/vm/systemvm/injectkeys.py";
- } else {
- injectScript = "scripts/vm/systemvm/injectkeys.sh";
- }
- return injectScript;
+ String injectScript = null;
+ boolean onWindows = isOnWindows();
+ if(onWindows) {
+ injectScript = "scripts/vm/systemvm/injectkeys.py";
+ } else {
+ injectScript = "scripts/vm/systemvm/injectkeys.sh";
+ }
+ return injectScript;
}
protected boolean isOnWindows() {
- String os = System.getProperty("os.name", "generic").toLowerCase();
- boolean onWindows = (os != null && os.startsWith("windows"));
- return onWindows;
+ String os = System.getProperty("os.name", "generic").toLowerCase();
+ boolean onWindows = (os != null && os.startsWith("windows"));
+ return onWindows;
}
@DB
@@ -1186,9 +1186,9 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
// Offering #5
NetworkOfferingVO defaultNetscalerNetworkOffering =
- new NetworkOfferingVO(NetworkOffering.DefaultSharedEIPandELBNetworkOffering,
- "Offering for Shared networks with Elastic IP and Elastic LB capabilities", TrafficType.Guest, false, true, null, null, true,
- Availability.Optional, null, Network.GuestType.Shared, true, false, false, false, true, true, true, false, false, true, true, false, false, false);
+ new NetworkOfferingVO(NetworkOffering.DefaultSharedEIPandELBNetworkOffering,
+ "Offering for Shared networks with Elastic IP and Elastic LB capabilities", TrafficType.Guest, false, true, null, null, true,
+ Availability.Optional, null, Network.GuestType.Shared, true, false, false, false, true, true, true, false, false, true, true, false, false, false);
defaultNetscalerNetworkOffering.setState(NetworkOffering.State.Enabled);
defaultNetscalerNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(defaultNetscalerNetworkOffering);