diff --git a/engine/api/src/org/apache/cloudstack/storage/to/SnapshotObjectTO.java b/engine/api/src/org/apache/cloudstack/storage/to/SnapshotObjectTO.java index d2cb72a387c..b4829bf7aa4 100644 --- a/engine/api/src/org/apache/cloudstack/storage/to/SnapshotObjectTO.java +++ b/engine/api/src/org/apache/cloudstack/storage/to/SnapshotObjectTO.java @@ -22,6 +22,7 @@ import com.cloud.agent.api.to.DataObjectType; import com.cloud.agent.api.to.DataStoreTO; import com.cloud.agent.api.to.DataTO; import com.cloud.hypervisor.Hypervisor.HypervisorType; +import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo; public class SnapshotObjectTO implements DataTO { private String path; @@ -40,8 +41,12 @@ public class SnapshotObjectTO implements DataTO { public SnapshotObjectTO(SnapshotInfo snapshot) { this.path = snapshot.getPath(); this.setId(snapshot.getId()); - this.volume = (VolumeObjectTO) snapshot.getBaseVolume().getTO(); - this.setVmName(snapshot.getBaseVolume().getAttachedVmName()); + VolumeInfo vol = snapshot.getBaseVolume(); + if (vol != null) { + this.volume = (VolumeObjectTO)vol.getTO(); + this.setVmName(vol.getAttachedVmName()); + } + SnapshotInfo parentSnapshot = snapshot.getParent(); if (parentSnapshot != null) { this.parentSnapshotPath = parentSnapshot.getPath(); diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeDataFactoryImpl.java b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeDataFactoryImpl.java index 2512c49348c..1d75ba1529b 100644 --- a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeDataFactoryImpl.java +++ b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeDataFactoryImpl.java @@ -74,6 +74,9 @@ public class VolumeDataFactoryImpl implements VolumeDataFactory { @Override public VolumeInfo getVolume(long volumeId) { VolumeVO volumeVO = volumeDao.findById(volumeId); + if (volumeVO == null) { + return null; + } VolumeObject vol = null; if (volumeVO.getPoolId() == null) { DataStore store = null;