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 <d...@onecht.net> 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; }