This is an automated email from the ASF dual-hosted git repository.
sureshanaparti pushed a commit to branch 4.18
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.18 by this push:
new 6b25ed7a027 prevent an NPE on an uninitialised TemplateObject (#8898)
6b25ed7a027 is described below
commit 6b25ed7a027b2291621dcdc6b03a3db36fb1912d
Author: dahn <[email protected]>
AuthorDate: Wed Jun 26 17:32:08 2024 +0200
prevent an NPE on an uninitialised TemplateObject (#8898)
* prevent an NPE on an uninitialised TemplateObject
* move npe handler up-stack
* Update
engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/store/TemplateObject.java
* catch yet one level up
* Update
engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
* Update
engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/store/TemplateObject.java
* extra guard
* Revert "prevent an NPE on an uninitialised TemplateObject"
This reverts commit e602a65ea62e4707828483a4ddea288d81ff06f5.
---
.../apache/cloudstack/storage/image/TemplateDataFactoryImpl.java | 3 +++
.../org/apache/cloudstack/storage/image/store/TemplateObject.java | 8 ++++++++
2 files changed, 11 insertions(+)
diff --git
a/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateDataFactoryImpl.java
b/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateDataFactoryImpl.java
index 8951b9d7c24..17cc80bcc9e 100644
---
a/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateDataFactoryImpl.java
+++
b/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateDataFactoryImpl.java
@@ -99,6 +99,9 @@ public class TemplateDataFactoryImpl implements
TemplateDataFactory {
@Override
public TemplateInfo getTemplate(long templateId, DataStore store) {
VMTemplateVO templ = imageDataDao.findById(templateId);
+ if (templ == null) {
+ return null;
+ }
if (store == null && !templ.isDirectDownload()) {
TemplateObject tmpl = TemplateObject.getTemplate(templ, null,
null);
return tmpl;
diff --git
a/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/store/TemplateObject.java
b/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/store/TemplateObject.java
index 3883637cd07..899f1d83e0b 100644
---
a/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/store/TemplateObject.java
+++
b/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/store/TemplateObject.java
@@ -81,6 +81,10 @@ public class TemplateObject implements TemplateInfo {
}
protected void configure(VMTemplateVO template, DataStore dataStore) {
+ if (template == null) {
+ String msg = String.format("Template Object is not properly
initialised %s", this.toString());
+ s_logger.warn(msg);
+ }
imageVO = template;
this.dataStore = dataStore;
}
@@ -97,6 +101,10 @@ public class TemplateObject implements TemplateInfo {
}
public VMTemplateVO getImage() {
+ if (imageVO == null) {
+ String msg = String.format("Template Object is not properly
initialised %s", this.toString());
+ s_logger.error(msg);
+ } // somehow the nullpointer is needed : refacter needed!?!
return imageVO;
}