You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/10/06 00:13:11 UTC
[1/2] git commit: CLOUDSTACK-84: fixed NPE that used to happen on API
layer when list resource of the project was called when project was going
through removal process.
Updated Branches:
refs/heads/master f6ab8b434 -> fa81f2725
CLOUDSTACK-84: fixed NPE that used to happen on API layer when list resource of the project was called when project was going through removal process.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/be201784
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/be201784
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/be201784
Branch: refs/heads/master
Commit: be2017849a0303aaf66d4f4bf136f0b2ae4f7a32
Parents: f6ab8b4
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Fri Oct 5 14:20:22 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Fri Oct 5 15:10:31 2012 -0700
----------------------------------------------------------------------
api/src/com/cloud/projects/ProjectService.java | 2 ++
server/src/com/cloud/api/ApiDBUtils.java | 4 ++++
server/src/com/cloud/api/ApiResponseHelper.java | 8 ++++----
.../src/com/cloud/projects/ProjectManagerImpl.java | 5 +++++
server/src/com/cloud/projects/dao/ProjectDao.java | 2 ++
.../src/com/cloud/projects/dao/ProjectDaoImpl.java | 8 ++++++++
6 files changed, 25 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/be201784/api/src/com/cloud/projects/ProjectService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/projects/ProjectService.java b/api/src/com/cloud/projects/ProjectService.java
index c792f26..5834f1c 100644
--- a/api/src/com/cloud/projects/ProjectService.java
+++ b/api/src/com/cloud/projects/ProjectService.java
@@ -93,4 +93,6 @@ public interface ProjectService {
Project enableProject(long projectId);
boolean deleteProjectInvitation(long invitationId);
+
+ Project findByProjectAccountIdIncludingRemoved(long projectAccountId);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/be201784/server/src/com/cloud/api/ApiDBUtils.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java
index 7126931..3fac7a7 100755
--- a/server/src/com/cloud/api/ApiDBUtils.java
+++ b/server/src/com/cloud/api/ApiDBUtils.java
@@ -733,6 +733,10 @@ public class ApiDBUtils {
return _projectMgr.findByProjectAccountId(projectAccountId);
}
+ public static Project findProjectByProjectAccountIdIncludingRemoved(long projectAccountId) {
+ return _projectMgr.findByProjectAccountIdIncludingRemoved(projectAccountId);
+ }
+
public static Project findProjectById(long projectId) {
return _projectMgr.getProject(projectId);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/be201784/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index b20aede..2b6a31b 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -2746,7 +2746,7 @@ public class ApiResponseHelper implements ResponseGenerator {
regularAccounts.add(accountName);
} else {
// convert account to projectIds
- Project project = ApiDBUtils.findProjectByProjectAccountId(account.getId());
+ Project project = ApiDBUtils.findProjectByProjectAccountIdIncludingRemoved(account.getId());
if (project.getUuid() != null && !project.getUuid().isEmpty())
projectIds.add(project.getUuid());
@@ -3343,7 +3343,7 @@ public class ApiResponseHelper implements ResponseGenerator {
if (account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
// find the project
- Project project = ApiDBUtils.findProjectByProjectAccountId(account.getId());
+ Project project = ApiDBUtils.findProjectByProjectAccountIdIncludingRemoved(account.getId());
response.setProjectId(project.getId());
response.setProjectName(project.getName());
} else {
@@ -3359,7 +3359,7 @@ public class ApiResponseHelper implements ResponseGenerator {
Account account = ApiDBUtils.findAccountByIdIncludingRemoved(accountId);
if (account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
// find the project
- Project project = ApiDBUtils.findProjectByProjectAccountId(account.getId());
+ Project project = ApiDBUtils.findProjectByProjectAccountIdIncludingRemoved(account.getId());
response.setProjectId(project.getId());
response.setProjectName(project.getName());
} else {
@@ -3670,7 +3670,7 @@ public class ApiResponseHelper implements ResponseGenerator {
if (account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
// find the project
- Project project = ApiDBUtils.findProjectByProjectAccountId(account.getId());
+ Project project = ApiDBUtils.findProjectByProjectAccountIdIncludingRemoved(account.getId());
response.setProjectId(project.getId());
response.setProjectName(project.getName());
} else {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/be201784/server/src/com/cloud/projects/ProjectManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/projects/ProjectManagerImpl.java b/server/src/com/cloud/projects/ProjectManagerImpl.java
index 7371201..77b778e 100755
--- a/server/src/com/cloud/projects/ProjectManagerImpl.java
+++ b/server/src/com/cloud/projects/ProjectManagerImpl.java
@@ -516,6 +516,11 @@ public class ProjectManagerImpl implements ProjectManager, Manager{
}
@Override
+ public ProjectVO findByProjectAccountIdIncludingRemoved(long projectAccountId) {
+ return _projectDao.findByProjectAccountIdIncludingRemoved(projectAccountId);
+ }
+
+ @Override
public Project findByNameAndDomainId(String name, long domainId) {
return _projectDao.findByNameAndDomain(name, domainId);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/be201784/server/src/com/cloud/projects/dao/ProjectDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/projects/dao/ProjectDao.java b/server/src/com/cloud/projects/dao/ProjectDao.java
index 045d6ca..e741f24 100644
--- a/server/src/com/cloud/projects/dao/ProjectDao.java
+++ b/server/src/com/cloud/projects/dao/ProjectDao.java
@@ -31,5 +31,7 @@ public interface ProjectDao extends GenericDao<ProjectVO, Long> {
ProjectVO findByProjectAccountId(long projectAccountId);
List<ProjectVO> listByState(Project.State state);
+
+ ProjectVO findByProjectAccountIdIncludingRemoved(long projectAccountId);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/be201784/server/src/com/cloud/projects/dao/ProjectDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/projects/dao/ProjectDaoImpl.java b/server/src/com/cloud/projects/dao/ProjectDaoImpl.java
index e194876..81e170a 100644
--- a/server/src/com/cloud/projects/dao/ProjectDaoImpl.java
+++ b/server/src/com/cloud/projects/dao/ProjectDaoImpl.java
@@ -108,4 +108,12 @@ public class ProjectDaoImpl extends GenericDaoBase<ProjectVO, Long> implements P
sc.setParameters("state", state);
return listBy(sc);
}
+
+ @Override
+ public ProjectVO findByProjectAccountIdIncludingRemoved(long projectAccountId) {
+ SearchCriteria<ProjectVO> sc = AllFieldsSearch.create();
+ sc.setParameters("projectAccountId", projectAccountId);
+
+ return findOneIncludingRemovedBy(sc);
+ }
}