Updated Branches: refs/heads/4.2 a9efec640 -> 065ae7a49
Correct DAO usage in VmwareDatacenterVO, relax assertion conditions to work with stack calling frame that is not wrapped with @DB injection Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/065ae7a4 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/065ae7a4 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/065ae7a4 Branch: refs/heads/4.2 Commit: 065ae7a497086cdc1a81e024dd61117c41e55cc0 Parents: a9efec6 Author: Kelven Yang <[email protected]> Authored: Tue Jul 30 18:05:01 2013 -0700 Committer: Kelven Yang <[email protected]> Committed: Tue Jul 30 18:05:38 2013 -0700 ---------------------------------------------------------------------- .../src/com/cloud/upgrade/dao/VersionDaoImpl.java | 1 + .../cloud/hypervisor/vmware/VmwareDatacenterVO.java | 16 ++++++++-------- .../src/com/cloud/servlet/CloudStartupServlet.java | 9 ++++++++- utils/src/com/cloud/utils/db/Transaction.java | 8 +++++++- 4 files changed, 24 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065ae7a4/engine/schema/src/com/cloud/upgrade/dao/VersionDaoImpl.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/upgrade/dao/VersionDaoImpl.java b/engine/schema/src/com/cloud/upgrade/dao/VersionDaoImpl.java index 7c5c9cc..3b2ed7e 100644 --- a/engine/schema/src/com/cloud/upgrade/dao/VersionDaoImpl.java +++ b/engine/schema/src/com/cloud/upgrade/dao/VersionDaoImpl.java @@ -73,6 +73,7 @@ public class VersionDaoImpl extends GenericDaoBase<VersionVO, Long> implements V } @Override + @DB public String getCurrentVersion() { Connection conn = null; try { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065ae7a4/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareDatacenterVO.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareDatacenterVO.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareDatacenterVO.java index a13e59e..b615012 100644 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareDatacenterVO.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareDatacenterVO.java @@ -46,10 +46,10 @@ public class VmwareDatacenterVO implements VmwareDatacenter { private String guid; @Column(name = "name") - private String name; + private String vmwareDatacenterName; @Column(name = "vcenter_host") - private String vCenterHost; + private String vcenterHost; @Column(name = "uuid") private String uuid; @@ -73,7 +73,7 @@ public class VmwareDatacenterVO implements VmwareDatacenter { @Override public String getVmwareDatacenterName() { - return name; + return vmwareDatacenterName; } @Override @@ -93,7 +93,7 @@ public class VmwareDatacenterVO implements VmwareDatacenter { @Override public String getVcenterHost() { - return vCenterHost; + return vcenterHost; } public void setUuid(String uuid) { @@ -105,11 +105,11 @@ public class VmwareDatacenterVO implements VmwareDatacenter { } public void setVmwareDatacenterName(String name) { - this.name = name; + this.vmwareDatacenterName = name; } public void setVcenterHost(String vCenterHost) { - this.vCenterHost = vCenterHost; + this.vcenterHost = vCenterHost; } public void setUser(String user) { @@ -141,9 +141,9 @@ public class VmwareDatacenterVO implements VmwareDatacenter { public VmwareDatacenterVO(String guid, String name, String vCenterHost, String user, String password) { this.uuid = UUID.randomUUID().toString(); - this.name = name; + this.vmwareDatacenterName = name; this.guid = guid; - this.vCenterHost = vCenterHost; + this.vcenterHost = vCenterHost; this.user = user; this.password = password; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065ae7a4/server/src/com/cloud/servlet/CloudStartupServlet.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/servlet/CloudStartupServlet.java b/server/src/com/cloud/servlet/CloudStartupServlet.java index 2cabe15..8fbae92 100755 --- a/server/src/com/cloud/servlet/CloudStartupServlet.java +++ b/server/src/com/cloud/servlet/CloudStartupServlet.java @@ -29,6 +29,7 @@ import org.springframework.web.context.support.SpringBeanAutowiringSupport; import com.cloud.utils.LogUtils; import com.cloud.utils.SerialVersionUID; import com.cloud.utils.component.ComponentContext; +import com.cloud.utils.db.Transaction; public class CloudStartupServlet extends HttpServlet { public static final Logger s_logger = Logger.getLogger(CloudStartupServlet.class.getName()); @@ -47,7 +48,13 @@ public class CloudStartupServlet extends HttpServlet { public void run() { if(ComponentContext.getApplicationContext() != null) { _timer.cancel(); - ComponentContext.initComponentsLifeCycle(); + + Transaction txn = Transaction.open(Transaction.CLOUD_DB); + try { + ComponentContext.initComponentsLifeCycle(); + } finally { + txn.close(); + } } } }, 0, 1000); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065ae7a4/utils/src/com/cloud/utils/db/Transaction.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/db/Transaction.java b/utils/src/com/cloud/utils/db/Transaction.java index 37ea8cf..a5da4b3 100755 --- a/utils/src/com/cloud/utils/db/Transaction.java +++ b/utils/src/com/cloud/utils/db/Transaction.java @@ -299,13 +299,19 @@ public class Transaction { if (se == null) { return false; } + + StringBuffer sb = new StringBuffer(); for (; stack < stacks.length; stack++) { String methodName = stacks[stack].getMethodName(); + sb.append(" ").append(methodName); if (methodName.equals(se.ref)){ return true; } } - return false; + + // relax stack structure for several places that @DB required injection is not in place + s_logger.warn("Non-standard stack context that Transaction context is manaully placed into the calling chain. Stack chain: " + sb); + return true; } protected static String buildName() {
