You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2015/02/02 11:17:18 UTC

[20/20] git commit: updated refs/heads/4.5 to 64e938b

fixed NPE on calculating vm snasphot volume size

(cherry picked from commit 95c7ffbd46f9f674b8813a7b992c17019eb00137)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


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

Branch: refs/heads/4.5
Commit: 64e938b7014da9994185dfe80120254cd96d4f7a
Parents: 86fe713
Author: Anthony Xu <an...@citrix.com>
Authored: Mon Oct 13 10:29:58 2014 -0700
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Feb 2 15:03:43 2015 +0530

----------------------------------------------------------------------
 .../xenserver/resource/CitrixResourceBase.java      | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/64e938b7/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
index ef1a950..a90f99d 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
@@ -6232,11 +6232,11 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
                     // add size of snapshot vdi node, usually this only contains meta data
                     size = size + vdi.getPhysicalUtilisation(conn);
                     // add size of snapshot vdi parent, this contains data
-                    if (parentVDI != null)
+                    if (!isRefNull(parentVDI))
                         size = size + parentVDI.getPhysicalUtilisation(conn).longValue();
                 }
             } catch (Exception e) {
-                s_logger.debug("Exception occurs when calculate " + "snapshot capacity for volumes: " + e.getMessage());
+                s_logger.debug("Exception occurs when calculate snapshot capacity for volumes: due to " + e.toString());
                 continue;
             }
         }
@@ -6248,13 +6248,17 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
                     try {
                         String vName = vmr.getNameLabel(conn);
                         if (vName != null && vName.contains(vmName) && vmr.getIsASnapshot(conn)) {
-
                             VDI memoryVDI = vmr.getSuspendVDI(conn);
-                            size = size + memoryVDI.getParent(conn).getPhysicalUtilisation(conn);
-                            size = size + memoryVDI.getPhysicalUtilisation(conn);
+                            if (!isRefNull(memoryVDI)) {
+                                size = size + memoryVDI.getPhysicalUtilisation(conn);
+                                VDI pMemoryVDI = memoryVDI.getParent(conn);
+                                if (!isRefNull(pMemoryVDI)) {
+                                    size = size + pMemoryVDI.getPhysicalUtilisation(conn);
+                                }
+                            }
                         }
                     } catch (Exception e) {
-                        s_logger.debug("Exception occurs when calculate " + "snapshot capacity for memory: " + e.getMessage());
+                        s_logger.debug("Exception occurs when calculate snapshot capacity for memory: due to " + e.toString());
                         continue;
                     }
                 }