You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by pr...@apache.org on 2013/07/03 01:37:19 UTC

git commit: updated refs/heads/master to 8780fef

Updated Branches:
  refs/heads/master 1bdb80a20 -> 8780fef05


CLOUDSTACK-3047 java.lang.NullPointerException encountered when executing capacityChecker thread.

Changes:
- Added null check around clusterId, since its possible to have null clusterId for storagepool and host records


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

Branch: refs/heads/master
Commit: 8780fef05a9d3e3ca23b14ae5cb7d3a00b2eec14
Parents: 1bdb80a
Author: Prachi Damle <pr...@cloud.com>
Authored: Tue Jul 2 16:36:03 2013 -0700
Committer: Prachi Damle <pr...@cloud.com>
Committed: Tue Jul 2 16:36:58 2013 -0700

----------------------------------------------------------------------
 .../com/cloud/capacity/CapacityManagerImpl.java | 13 ++++++++++---
 .../com/cloud/storage/StorageManagerImpl.java   | 20 ++++++++++++++------
 2 files changed, 24 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8780fef0/server/src/com/cloud/capacity/CapacityManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/capacity/CapacityManagerImpl.java b/server/src/com/cloud/capacity/CapacityManagerImpl.java
index 7a94c78..b2f10f2 100755
--- a/server/src/com/cloud/capacity/CapacityManagerImpl.java
+++ b/server/src/com/cloud/capacity/CapacityManagerImpl.java
@@ -47,6 +47,7 @@ import com.cloud.configuration.Config;
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.configuration.dao.ConfigurationDao;
 import com.cloud.dc.ClusterDetailsDao;
+import com.cloud.dc.ClusterVO;
 import com.cloud.dc.dao.ClusterDao;
 import com.cloud.exception.ConnectionException;
 import com.cloud.host.Host;
@@ -623,15 +624,21 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
 	        }
         }else {
         	Transaction txn = Transaction.currentTxn();
-            CapacityState capacityState = _configMgr.findClusterAllocationState(ApiDBUtils.findClusterById(host.getClusterId())) == AllocationState.Disabled ?
-            							  CapacityState.Disabled : CapacityState.Enabled;
         	txn.start();
         	CapacityVO capacity = new CapacityVO(host.getId(),
                     host.getDataCenterId(), host.getPodId(), host.getClusterId(), usedMemory,
                     host.getTotalMemory(),
                     CapacityVO.CAPACITY_TYPE_MEMORY);
             capacity.setReservedCapacity(reservedMemory);
-            capacity.setCapacityState(capacityState);
+            CapacityState capacityState = CapacityState.Enabled;
+            if (host.getClusterId() != null) {
+                ClusterVO cluster = ApiDBUtils.findClusterById(host.getClusterId());
+                if (cluster != null) {
+                    capacityState = _configMgr.findClusterAllocationState(cluster) == AllocationState.Disabled ? CapacityState.Disabled
+                            : CapacityState.Enabled;
+                    capacity.setCapacityState(capacityState);
+                }
+            }
             _capacityDao.persist(capacity);
 
             capacity = new CapacityVO(

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8780fef0/server/src/com/cloud/storage/StorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java
index bb21afb..6499e49 100755
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@ -892,16 +892,24 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
         if (capacities.size() == 0) {
             CapacityVO capacity = new CapacityVO(storagePool.getId(), storagePool.getDataCenterId(), storagePool.getPodId(),
                     storagePool.getClusterId(), allocated, totalOverProvCapacity, capacityType);
-            AllocationState allocationState = null;
+
             if (storagePool.getScope() == ScopeType.ZONE) {
                 DataCenterVO dc = ApiDBUtils.findZoneById(storagePool.getDataCenterId());
-                allocationState = dc.getAllocationState();
+                AllocationState allocationState = dc.getAllocationState();
+                CapacityState capacityState = (allocationState == AllocationState.Disabled) ? CapacityState.Disabled
+                        : CapacityState.Enabled;
+                capacity.setCapacityState(capacityState);
             } else {
-                allocationState = _configMgr.findClusterAllocationState(ApiDBUtils.findClusterById(storagePool.getClusterId()));
+                if (storagePool.getClusterId() != null) {
+                    ClusterVO cluster = ApiDBUtils.findClusterById(storagePool.getClusterId());
+                    if (cluster != null) {
+                        AllocationState allocationState = _configMgr.findClusterAllocationState(cluster);
+                        CapacityState capacityState = (allocationState == AllocationState.Disabled) ? CapacityState.Disabled
+                                : CapacityState.Enabled;
+                        capacity.setCapacityState(capacityState);
+                    }
+                }
             }
-            CapacityState capacityState = (allocationState == AllocationState.Disabled) ? CapacityState.Disabled : CapacityState.Enabled;
-
-            capacity.setCapacityState(capacityState);
             _capacityDao.persist(capacity);
         } else {
             CapacityVO capacity = capacities.get(0);