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;
     }
 

Reply via email to