CLOUDSTACK-1307 Noticed NPE when we put host in maintenance mode in clustered 
management setup

Changes:
   - Use of class variable of type GenericSearchBuilder causes issues when 
multiple threads invoke this method to findCapacity
   - Changing the scope of the variable to be local to these methods.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/378827ef
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/378827ef
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/378827ef

Branch: refs/heads/4.1
Commit: 378827efedeb5a916059b606daba57d5e3e3a567
Parents: 27479d5
Author: Prachi Damle <[email protected]>
Authored: Fri Feb 15 20:37:18 2013 -0800
Committer: Prachi Damle <[email protected]>
Committed: Tue Feb 19 15:15:00 2013 -0800

----------------------------------------------------------------------
 .../com/cloud/capacity/dao/CapacityDaoImpl.java    |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/378827ef/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java 
b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java
index baaf391..c33bfaf 100755
--- a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java
+++ b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java
@@ -62,7 +62,6 @@ public class CapacityDaoImpl extends 
GenericDaoBase<CapacityVO, Long> implements
 
     private final SearchBuilder<CapacityVO> _hostIdTypeSearch;
     private final SearchBuilder<CapacityVO> _hostOrPoolIdSearch;
-    protected GenericSearchBuilder<CapacityVO, SummedCapacity> 
SummedCapacitySearch;
     private final SearchBuilder<CapacityVO> _allFieldsSearch;
     @Inject protected StoragePoolDao _storagePoolDao;
 
@@ -309,7 +308,7 @@ public class CapacityDaoImpl extends 
GenericDaoBase<CapacityVO, Long> implements
     @Override
     public  List<SummedCapacity> findCapacityBy(Integer capacityType, Long 
zoneId, Long podId, Long clusterId){
 
-        SummedCapacitySearch = createSearchBuilder(SummedCapacity.class);
+        GenericSearchBuilder<CapacityVO, SummedCapacity> SummedCapacitySearch 
= createSearchBuilder(SummedCapacity.class);
         SummedCapacitySearch.select("dcId", Func.NATIVE, 
SummedCapacitySearch.entity().getDataCenterId());
         SummedCapacitySearch.select("sumUsed", Func.SUM, 
SummedCapacitySearch.entity().getUsedCapacity());
         SummedCapacitySearch.select("sumReserved", Func.SUM, 
SummedCapacitySearch.entity().getReservedCapacity());
@@ -528,7 +527,7 @@ public class CapacityDaoImpl extends 
GenericDaoBase<CapacityVO, Long> implements
     @Override
     public List<SummedCapacity> findByClusterPodZone(Long zoneId, Long podId, 
Long clusterId){
 
-        SummedCapacitySearch = createSearchBuilder(SummedCapacity.class);
+        GenericSearchBuilder<CapacityVO, SummedCapacity> SummedCapacitySearch 
= createSearchBuilder(SummedCapacity.class);
         SummedCapacitySearch.select("sumUsed", Func.SUM, 
SummedCapacitySearch.entity().getUsedCapacity());
         SummedCapacitySearch.select("sumTotal", Func.SUM, 
SummedCapacitySearch.entity().getTotalCapacity());   
         SummedCapacitySearch.select("capacityType", Func.NATIVE, 
SummedCapacitySearch.entity().getCapacityType());                               
 
@@ -563,7 +562,7 @@ public class CapacityDaoImpl extends 
GenericDaoBase<CapacityVO, Long> implements
     @Override
     public List<SummedCapacity> findNonSharedStorageForClusterPodZone(Long 
zoneId, Long podId, Long clusterId){
 
-        SummedCapacitySearch = createSearchBuilder(SummedCapacity.class);
+        GenericSearchBuilder<CapacityVO, SummedCapacity> SummedCapacitySearch 
= createSearchBuilder(SummedCapacity.class);
         SummedCapacitySearch.select("sumUsed", Func.SUM, 
SummedCapacitySearch.entity().getUsedCapacity());
         SummedCapacitySearch.select("sumTotal", Func.SUM, 
SummedCapacitySearch.entity().getTotalCapacity());   
         SummedCapacitySearch.select("capacityType", Func.NATIVE, 
SummedCapacitySearch.entity().getCapacityType());

Reply via email to