This is an automated email from the ASF dual-hosted git repository.

RosiKyu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new a8200cfc26a improved errorlog message by adding null check (#13263)
a8200cfc26a is described below

commit a8200cfc26a2cc46f9e67963161aaf40bb01947f
Author: Saurabh Kushwaha <[email protected]>
AuthorDate: Thu Nov 12 18:45:24 2026 +0530

    improved errorlog message by adding null check (#13263)
    
    * improved errorlog message by adding null check
    
    * ui: centralize importVMTask null guard in task manager and add warning 
logs
    
    B
    
    * Fix debug log placeholder argument mapping in ImportVmTasksManagerImpl
---
 .../cloudstack/vm/ImportVmTasksManagerImpl.java    | 43 +++++++++++++++-------
 1 file changed, 29 insertions(+), 14 deletions(-)

diff --git 
a/server/src/main/java/org/apache/cloudstack/vm/ImportVmTasksManagerImpl.java 
b/server/src/main/java/org/apache/cloudstack/vm/ImportVmTasksManagerImpl.java
index 7294ec051ea..b0631173114 100644
--- 
a/server/src/main/java/org/apache/cloudstack/vm/ImportVmTasksManagerImpl.java
+++ 
b/server/src/main/java/org/apache/cloudstack/vm/ImportVmTasksManagerImpl.java
@@ -80,7 +80,8 @@ public class ImportVmTasksManagerImpl implements 
ImportVmTasksManager {
         Long pageSizeVal = cmd.getPageSizeVal();
 
         ImportVmTask.TaskState state = 
getStateFromFilter(cmd.getTasksFilter());
-        Pair<List<ImportVMTaskVO>, Integer> result = 
importVMTaskDao.listImportVMTasks(zoneId, accountId, vcenter, convertHostId, 
state, startIndex, pageSizeVal);
+        Pair<List<ImportVMTaskVO>, Integer> result = 
importVMTaskDao.listImportVMTasks(zoneId, accountId, vcenter,
+                convertHostId, state, startIndex, pageSizeVal);
         List<ImportVMTaskVO> tasks = result.first();
 
         List<ImportVMTaskResponse> responses = new ArrayList<>();
@@ -99,15 +100,17 @@ public class ImportVmTasksManagerImpl implements 
ImportVmTasksManager {
         try {
             return ImportVmTask.TaskState.getValue(tasksFilter);
         } catch (IllegalArgumentException e) {
-            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, 
String.format("Invalid value for task state: %s", tasksFilter));
+            throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                    String.format("Invalid value for task state: %s", 
tasksFilter));
         }
     }
 
     @Override
-    public ImportVmTask createImportVMTaskRecord(DataCenter zone, Account 
owner, long userId, String displayName, String vcenter, String datacenterName, 
String sourceVMName, Host convertHost, Host importHost) {
+    public ImportVmTask createImportVMTaskRecord(DataCenter zone, Account 
owner, long userId, String displayName,
+            String vcenter, String datacenterName, String sourceVMName, Host 
convertHost, Host importHost) {
         logger.debug("Creating import VM task entry for VM: {} for account {} 
on zone {} " +
-                        "from the vCenter: {} / datacenter: {} / source VM: 
{}",
-                sourceVMName, owner.getAccountName(), zone.getName(), 
displayName, vcenter, datacenterName);
+                "from the vCenter: {} / datacenter: {} / source VM: {}",
+                displayName, owner.getAccountName(), zone.getName(), vcenter, 
datacenterName, sourceVMName);
         ImportVMTaskVO importVMTaskVO = new ImportVMTaskVO(zone.getId(), 
owner.getAccountId(), userId, displayName,
                 vcenter, datacenterName, sourceVMName, convertHost.getId(), 
importHost.getId());
         importVMTaskVO.setState(ImportVmTask.TaskState.Running);
@@ -115,21 +118,26 @@ public class ImportVmTasksManagerImpl implements 
ImportVmTasksManager {
     }
 
     private String getStepDescription(ImportVMTaskVO importVMTaskVO, Host 
convertHost, Host importHost,
-                                      ImportVMTaskVO.Step step, Date 
updatedDate) {
+            ImportVMTaskVO.Step step, Date updatedDate) {
         String sourceVMName = importVMTaskVO.getSourceVMName();
         String vcenter = importVMTaskVO.getVcenter();
         String datacenter = importVMTaskVO.getDatacenter();
 
         StringBuilder stringBuilder = new StringBuilder();
         if (Completed == step) {
-            stringBuilder.append("Completed at 
").append(DateUtil.getDateDisplayString(TimeZone.getTimeZone("GMT"), 
updatedDate));
+            stringBuilder.append("Completed at ")
+                    
.append(DateUtil.getDateDisplayString(TimeZone.getTimeZone("GMT"), 
updatedDate));
         } else {
             if (CloningInstance == step) {
-                stringBuilder.append(String.format("Cloning source instance: 
%s on vCenter: %s / datacenter: %s", sourceVMName, vcenter, datacenter));
+                stringBuilder.append(String.format("Cloning source instance: 
%s on vCenter: %s / datacenter: %s",
+                        sourceVMName, vcenter, datacenter));
             } else if (ConvertingInstance == step) {
-                stringBuilder.append(String.format("Converting the cloned 
VMware instance to a KVM instance on the host: %s", convertHost.getName()));
+                stringBuilder
+                        .append(String.format("Converting the cloned VMware 
instance to a KVM instance on the host: %s",
+                                convertHost.getName()));
             } else if (Importing == step) {
-                stringBuilder.append(String.format("Importing the converted 
KVM instance on the host: %s", importHost.getName()));
+                stringBuilder.append(
+                        String.format("Importing the converted KVM instance on 
the host: %s", importHost.getName()));
             } else if (Prepare == step) {
                 stringBuilder.append("Preparing to convert Vmware instance");
             }
@@ -139,12 +147,13 @@ public class ImportVmTasksManagerImpl implements 
ImportVmTasksManager {
 
     @Override
     public void updateImportVMTaskStep(ImportVmTask importVMTask, DataCenter 
zone, Account owner, Host convertHost,
-                                       Host importHost, Long vmId, 
ImportVmTask.Step step) {
+            Host importHost, Long vmId, ImportVmTask.Step step) {
         ImportVMTaskVO importVMTaskVO = (ImportVMTaskVO) importVMTask;
         logger.debug("Updating import VM task entry for VM: {} for account {} 
on zone {} " +
-                        "from the vCenter: {} / datacenter: {} / source VM: {} 
to step: {}",
-                importVMTaskVO.getSourceVMName(), owner.getAccountName(), 
zone.getName(), importVMTaskVO.getDisplayName(),
-                importVMTaskVO.getVcenter(), importVMTaskVO.getDatacenter(), 
step);
+                "from the vCenter: {} / datacenter: {} / source VM: {} to 
step: {}",
+                importVMTaskVO.getDisplayName(), owner.getAccountName(), 
zone.getName(),
+                importVMTaskVO.getVcenter(), importVMTaskVO.getDatacenter(),
+                importVMTaskVO.getSourceVMName(), step);
         Date updatedDate = DateUtil.now();
         String description = getStepDescription(importVMTaskVO, convertHost, 
importHost, step, updatedDate);
         importVMTaskVO.setStep(step);
@@ -161,6 +170,12 @@ public class ImportVmTasksManagerImpl implements 
ImportVmTasksManager {
 
     @Override
     public void updateImportVMTaskErrorState(ImportVmTask importVMTask, 
ImportVmTask.TaskState state, String errorMsg) {
+        if (importVMTask == null) {
+            logger.warn(
+                    "Skipping import VM task error state update because 
importVMTask is null; state: {}, errorMsg: {}",
+                    state, errorMsg);
+            return;
+        }
         ImportVMTaskVO importVMTaskVO = (ImportVMTaskVO) importVMTask;
         Date updatedDate = DateUtil.now();
         importVMTaskVO.setUpdated(updatedDate);

Reply via email to