diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java index 71df262dc85..2d7e99eeb79 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java @@ -40,12 +40,16 @@ public class DataStoreManagerImpl implements DataStoreManager { @Override public DataStore getDataStore(long storeId, DataStoreRole role) { - if (role == DataStoreRole.Primary) { - return primaryStoreMgr.getPrimaryDataStore(storeId); - } else if (role == DataStoreRole.Image) { - return imageDataStoreMgr.getImageStore(storeId); - } else if (role == DataStoreRole.ImageCache) { - return imageDataStoreMgr.getImageStore(storeId); + try { + if (role == DataStoreRole.Primary) { + return primaryStoreMgr.getPrimaryDataStore(storeId); + } else if (role == DataStoreRole.Image) { + return imageDataStoreMgr.getImageStore(storeId); + } else if (role == DataStoreRole.ImageCache) { + return imageDataStoreMgr.getImageStore(storeId); + } + } catch (CloudRuntimeException e) { + throw e; } throw new CloudRuntimeException("un recognized type" + role); } diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java b/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java index 06b54e0a46c..db14f6d27a3 100644 --- a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java +++ b/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java @@ -36,6 +36,7 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; import org.springframework.stereotype.Component; import com.cloud.storage.StorageManager; +import com.cloud.utils.exception.CloudRuntimeException; @Component public class PrimaryDataStoreProviderManagerImpl implements PrimaryDataStoreProviderManager { @@ -55,6 +56,9 @@ public class PrimaryDataStoreProviderManagerImpl implements PrimaryDataStoreProv @Override public PrimaryDataStore getPrimaryDataStore(long dataStoreId) { StoragePoolVO dataStoreVO = dataStoreDao.findById(dataStoreId); + if (dataStoreVO == null) { + throw new CloudRuntimeException("Unable to locate datastore with id " + dataStoreId); + } String providerName = dataStoreVO.getStorageProviderName(); DataStoreProvider provider = providerManager.getDataStoreProvider(providerName); PrimaryDataStoreImpl dataStore = PrimaryDataStoreImpl.createDataStore(dataStoreVO,