You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ed...@apache.org on 2013/08/01 22:59:58 UTC
git commit: updated refs/heads/master to 239c6ce
Updated Branches:
refs/heads/master 11c2265d1 -> 239c6cef4
CLOUDSTACK-4008: fix snapshot npe if its volume is deleted
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/239c6cef
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/239c6cef
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/239c6cef
Branch: refs/heads/master
Commit: 239c6cef45b9655a1373f3c472965cbbc6001b4b
Parents: 11c2265
Author: Edison Su <su...@gmail.com>
Authored: Thu Aug 1 13:57:47 2013 -0700
Committer: Edison Su <su...@gmail.com>
Committed: Thu Aug 1 13:59:41 2013 -0700
----------------------------------------------------------------------
.../org/apache/cloudstack/storage/to/SnapshotObjectTO.java | 9 +++++++--
.../cloudstack/storage/volume/VolumeDataFactoryImpl.java | 3 +++
2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/239c6cef/core/src/org/apache/cloudstack/storage/to/SnapshotObjectTO.java
----------------------------------------------------------------------
diff --git a/core/src/org/apache/cloudstack/storage/to/SnapshotObjectTO.java b/core/src/org/apache/cloudstack/storage/to/SnapshotObjectTO.java
index d2cb72a..b4829bf 100644
--- a/core/src/org/apache/cloudstack/storage/to/SnapshotObjectTO.java
+++ b/core/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();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/239c6cef/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeDataFactoryImpl.java
----------------------------------------------------------------------
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 2512c49..1d75ba1 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;