bug 11283: deal with empty snapshot disk chain

This commit is contained in:
Kelven Yang 2011-09-08 15:57:47 -07:00
parent 6e6b6ab2ab
commit 9736c1e3b1

View File

@ -175,22 +175,24 @@ public class SnapshotDescriptor {
while(current != null) { while(current != null) {
id = getSnapshotId(current); id = getSnapshotId(current);
String numDisksStr = _properties.getProperty(String.format("snapshot%d.numDisks", id)); String numDisksStr = _properties.getProperty(String.format("snapshot%d.numDisks", id));
assert(numDisksStr != null); int numDisks = 0;
int numDisks = Integer.parseInt(numDisksStr); if(numDisksStr != null && !numDisksStr.isEmpty()) {
DiskInfo[] disks = new DiskInfo[numDisks]; numDisks = Integer.parseInt(numDisksStr);
for(int i = 0; i < numDisks; i++) { DiskInfo[] disks = new DiskInfo[numDisks];
disks[i] = new DiskInfo( for(int i = 0; i < numDisks; i++) {
_properties.getProperty(String.format("snapshot%d.disk%d.fileName", id, i)), disks[i] = new DiskInfo(
_properties.getProperty(String.format("snapshot%d.disk%d.node", id, i)) _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(); SnapshotInfo info = new SnapshotInfo();
info.setId(id); info.setId(id);
info.setNumOfDisks(numDisks); info.setNumOfDisks(numDisks);
info.setDisks(disks); info.setDisks(disks);
info.setDisplayName(_properties.getProperty(String.format("snapshot%d.displayName", id))); info.setDisplayName(_properties.getProperty(String.format("snapshot%d.displayName", id)));
l.add(info); l.add(info);
}
current = _properties.getProperty(String.format("snapshot%d.parent", id)); current = _properties.getProperty(String.format("snapshot%d.parent", id));
} }