From 9736c1e3b1d78b85ff8bb393a8a6d29cf7709054 Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Thu, 8 Sep 2011 15:57:47 -0700 Subject: [PATCH] bug 11283: deal with empty snapshot disk chain --- .../vmware/mo/SnapshotDescriptor.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/SnapshotDescriptor.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/SnapshotDescriptor.java index 45428cd29ec..1c16d27a8cf 100755 --- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/SnapshotDescriptor.java +++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/SnapshotDescriptor.java @@ -175,23 +175,25 @@ public class SnapshotDescriptor { while(current != null) { id = getSnapshotId(current); String numDisksStr = _properties.getProperty(String.format("snapshot%d.numDisks", id)); - assert(numDisksStr != null); - int numDisks = Integer.parseInt(numDisksStr); - DiskInfo[] disks = new DiskInfo[numDisks]; - for(int i = 0; i < numDisks; i++) { - disks[i] = new DiskInfo( - _properties.getProperty(String.format("snapshot%d.disk%d.fileName", id, i)), - _properties.getProperty(String.format("snapshot%d.disk%d.node", id, i)) - ); + int numDisks = 0; + if(numDisksStr != null && !numDisksStr.isEmpty()) { + numDisks = Integer.parseInt(numDisksStr); + DiskInfo[] disks = new DiskInfo[numDisks]; + for(int i = 0; i < numDisks; i++) { + disks[i] = new DiskInfo( + _properties.getProperty(String.format("snapshot%d.disk%d.fileName", id, i)), + _properties.getProperty(String.format("snapshot%d.disk%d.node", id, i)) + ); + } + + SnapshotInfo info = new SnapshotInfo(); + info.setId(id); + info.setNumOfDisks(numDisks); + info.setDisks(disks); + info.setDisplayName(_properties.getProperty(String.format("snapshot%d.displayName", id))); + l.add(info); } - SnapshotInfo info = new SnapshotInfo(); - info.setId(id); - info.setNumOfDisks(numDisks); - info.setDisks(disks); - info.setDisplayName(_properties.getProperty(String.format("snapshot%d.displayName", id))); - l.add(info); - current = _properties.getProperty(String.format("snapshot%d.parent", id)); }