From 6a683dcf7780aa2e1544c470a8b5a4953fc13349 Mon Sep 17 00:00:00 2001 From: Spaceman1984 <49917670+Spaceman1984@users.noreply.github.com> Date: Mon, 15 Jun 2020 06:24:22 +0200 Subject: [PATCH] storage: Fixed null pointer (#4130) Fixes #4090 When trying to migrate a VM across 2 clusters, if a snapshot has been deleted and garbage collection has run to update the removed field, it is not possible to migrate the instance due to a null pointer. --- .../cloudstack/storage/snapshot/SnapshotDataFactoryImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/snapshot/SnapshotDataFactoryImpl.java b/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/snapshot/SnapshotDataFactoryImpl.java index 11d61df3d7f..f8be1adee56 100644 --- a/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/snapshot/SnapshotDataFactoryImpl.java +++ b/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/snapshot/SnapshotDataFactoryImpl.java @@ -73,6 +73,9 @@ public class SnapshotDataFactoryImpl implements SnapshotDataFactory { for (SnapshotDataStoreVO snapshotDataStoreVO : allSnapshotsFromVolumeAndDataStore) { DataStore store = storeMgr.getDataStore(snapshotDataStoreVO.getDataStoreId(), role); SnapshotVO snapshot = snapshotDao.findById(snapshotDataStoreVO.getSnapshotId()); + if (snapshot == null){ //snapshot may have been removed; + continue; + } SnapshotObject info = SnapshotObject.getSnapshotObject(snapshot, store); infos.add(info);