You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/08/29 20:06:14 UTC

[1/3] airavata git commit: making errors and statuses list in Process and Task models

Repository: airavata
Updated Branches:
  refs/heads/supun/develop eee49d36c -> b46fd5117


http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
index 533e719..8740737 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
@@ -386,13 +386,13 @@ public class ThriftDataModelConversion {
             if (errorModel != null){
                 List<ErrorModel> errorModels = new ArrayList<>();
                 errorModels.add(errorModel);
-                processModel.setProcessError(errorModels);
+                processModel.setProcessErrors(errorModels);
             }
             ProcessStatus processStatus = getProcessStatus(processResource.getProcessStatus());
             if (processStatus != null){
                 List<ProcessStatus> statuses = new ArrayList<>();
                 statuses.add(processStatus);
-                processModel.setProcessStatus(statuses);
+                processModel.setProcessStatuses(statuses);
             }
 
             ComputationalResourceSchedulingModel schedule = getProcessResourceSchedule(processResource.getProcessResourceSchedule());
@@ -431,11 +431,15 @@ public class ThriftDataModelConversion {
 
         TaskStatus taskStatus = getTaskStatus(taskResource.getTaskStatus());
         if (taskStatus != null){
-            model.setTaskStatus(taskStatus);
+            List<TaskStatus> taskStatuses = new ArrayList<>();
+            taskStatuses.add(taskStatus);
+            model.setTaskStatuses(taskStatuses);
         }
         ErrorModel errorModel = getErrorModel(taskResource.getTaskError());
         if (errorModel != null) {
-            model.setTaskError(errorModel);
+            List<ErrorModel> errors = new ArrayList<>();
+            errors.add(errorModel);
+            model.setTaskErrors(errors);
         }
 
         return model;
@@ -453,7 +457,9 @@ public class ThriftDataModelConversion {
         model.setWorkingDir(jobResource.getWorkingDir());
         JobStatus jobStatus = getJobStatus(jobResource.getJobStatus());
         if (jobStatus != null){
-            model.setJobStatus(jobStatus);
+            List<JobStatus> jobStatuses = new ArrayList<>();
+            jobStatuses.add(jobStatus);
+            model.setJobStatuses(jobStatuses);
         }
         model.setExitCode(jobResource.getExitCode());
         model.setStdOut(jobResource.getStdOut());

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
index 67344d7..076208d 100644
--- a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
+++ b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
@@ -720,7 +720,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
                                 for (Object jobObject : jobs) {
                                     JobModel jobModel = (JobModel) jobObject;
                                     String jobID = jobModel.getJobId();
-                                    JobStatus status = jobModel.getJobStatus();
+                                    JobStatus status = jobModel.getJobStatuses().get(0);
                                     if (status != null){
                                         jobStatus.put(jobID, status);
                                     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/thrift-interface-descriptions/data-models/experiment-catalog-models/job_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/experiment-catalog-models/job_model.thrift b/thrift-interface-descriptions/data-models/experiment-catalog-models/job_model.thrift
index f908c5e..9e7154e 100644
--- a/thrift-interface-descriptions/data-models/experiment-catalog-models/job_model.thrift
+++ b/thrift-interface-descriptions/data-models/experiment-catalog-models/job_model.thrift
@@ -31,7 +31,7 @@ struct JobModel {
     3: required string processId,
     4: required string jobDescription,
     5: optional i64 creationTime,
-    6: optional status_models.JobStatus jobStatus,
+    6: optional list<status_models.JobStatus> jobStatuses,
     7: optional string computeResourceConsumed,
     8: optional string jobName,
     9: optional string workingDir,

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/thrift-interface-descriptions/data-models/experiment-catalog-models/process_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/experiment-catalog-models/process_model.thrift b/thrift-interface-descriptions/data-models/experiment-catalog-models/process_model.thrift
index 0a72923..ac78837 100644
--- a/thrift-interface-descriptions/data-models/experiment-catalog-models/process_model.thrift
+++ b/thrift-interface-descriptions/data-models/experiment-catalog-models/process_model.thrift
@@ -44,7 +44,7 @@ struct ProcessModel {
     2: required string experimentId,
     3: optional i64 creationTime,
     4: optional i64 lastUpdateTime,
-    5: optional list<status_models.ProcessStatus> processStatus,
+    5: optional list<status_models.ProcessStatus> processStatuses,
     6: optional string processDetail,
     7: optional string applicationInterfaceId,
     8: optional string applicationDeploymentId,
@@ -54,7 +54,7 @@ struct ProcessModel {
     12: optional scheduling_model.ComputationalResourceSchedulingModel processResourceSchedule,
     13: optional list<task_model.TaskModel> tasks,
     14: optional string taskDag,
-    15: optional list<airavata_commons.ErrorModel> processError,
+    15: optional list<airavata_commons.ErrorModel> processErrors,
     16: optional string gatewayExecutionId,
     17: optional bool enableEmailNotification,
     18: optional list<string> emailAddresses,

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/thrift-interface-descriptions/data-models/experiment-catalog-models/task_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/experiment-catalog-models/task_model.thrift b/thrift-interface-descriptions/data-models/experiment-catalog-models/task_model.thrift
index faaf93b..1d95d01 100644
--- a/thrift-interface-descriptions/data-models/experiment-catalog-models/task_model.thrift
+++ b/thrift-interface-descriptions/data-models/experiment-catalog-models/task_model.thrift
@@ -58,10 +58,10 @@ struct TaskModel {
     3: required string parentProcessId,
     4: required i64 creationTime,
     5: required i64 lastUpdateTime,
-    6: required status_models.TaskStatus taskStatus,
+    6: required list<status_models.TaskStatus> taskStatuses,
     7: optional string taskDetail,
     8: optional binary subTaskModel,
-    9: optional airavata_commons.ErrorModel taskError,
+    9: optional list<airavata_commons.ErrorModel> taskErrors,
     10: optional list<job_model.JobModel> jobs
 }
 


[2/3] airavata git commit: making errors and statuses list in Process and Task models

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
index 3d6450f..5ebdacf 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
@@ -23,32 +23,16 @@
  */
 package org.apache.airavata.model.task;
 
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-
 import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
+
 import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.nio.ByteBuffer;
+import java.util.*;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 /**
@@ -69,10 +53,10 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
   private static final org.apache.thrift.protocol.TField PARENT_PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("parentProcessId", org.apache.thrift.protocol.TType.STRING, (short)3);
   private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)4);
   private static final org.apache.thrift.protocol.TField LAST_UPDATE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastUpdateTime", org.apache.thrift.protocol.TType.I64, (short)5);
-  private static final org.apache.thrift.protocol.TField TASK_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("taskStatus", org.apache.thrift.protocol.TType.STRUCT, (short)6);
+  private static final org.apache.thrift.protocol.TField TASK_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("taskStatuses", org.apache.thrift.protocol.TType.LIST, (short)6);
   private static final org.apache.thrift.protocol.TField TASK_DETAIL_FIELD_DESC = new org.apache.thrift.protocol.TField("taskDetail", org.apache.thrift.protocol.TType.STRING, (short)7);
   private static final org.apache.thrift.protocol.TField SUB_TASK_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("subTaskModel", org.apache.thrift.protocol.TType.STRING, (short)8);
-  private static final org.apache.thrift.protocol.TField TASK_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("taskError", org.apache.thrift.protocol.TType.STRUCT, (short)9);
+  private static final org.apache.thrift.protocol.TField TASK_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("taskErrors", org.apache.thrift.protocol.TType.LIST, (short)9);
   private static final org.apache.thrift.protocol.TField JOBS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobs", org.apache.thrift.protocol.TType.LIST, (short)10);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
@@ -86,10 +70,10 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
   private String parentProcessId; // required
   private long creationTime; // required
   private long lastUpdateTime; // required
-  private org.apache.airavata.model.status.TaskStatus taskStatus; // required
+  private List<org.apache.airavata.model.status.TaskStatus> taskStatuses; // required
   private String taskDetail; // optional
   private ByteBuffer subTaskModel; // optional
-  private org.apache.airavata.model.commons.ErrorModel taskError; // optional
+  private List<org.apache.airavata.model.commons.ErrorModel> taskErrors; // optional
   private List<org.apache.airavata.model.job.JobModel> jobs; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -103,10 +87,10 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     PARENT_PROCESS_ID((short)3, "parentProcessId"),
     CREATION_TIME((short)4, "creationTime"),
     LAST_UPDATE_TIME((short)5, "lastUpdateTime"),
-    TASK_STATUS((short)6, "taskStatus"),
+    TASK_STATUS((short)6, "taskStatuses"),
     TASK_DETAIL((short)7, "taskDetail"),
     SUB_TASK_MODEL((short)8, "subTaskModel"),
-    TASK_ERROR((short)9, "taskError"),
+    TASK_ERROR((short)9, "taskErrors"),
     JOBS((short)10, "jobs");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -199,14 +183,16 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
     tmpMap.put(_Fields.LAST_UPDATE_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastUpdateTime", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.TASK_STATUS, new org.apache.thrift.meta_data.FieldMetaData("taskStatus", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.TaskStatus.class)));
+    tmpMap.put(_Fields.TASK_STATUS, new org.apache.thrift.meta_data.FieldMetaData("taskStatuses", org.apache.thrift.TFieldRequirementType.REQUIRED,
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.TaskStatus.class))));
     tmpMap.put(_Fields.TASK_DETAIL, new org.apache.thrift.meta_data.FieldMetaData("taskDetail", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.SUB_TASK_MODEL, new org.apache.thrift.meta_data.FieldMetaData("subTaskModel", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
-    tmpMap.put(_Fields.TASK_ERROR, new org.apache.thrift.meta_data.FieldMetaData("taskError", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class)));
+    tmpMap.put(_Fields.TASK_ERROR, new org.apache.thrift.meta_data.FieldMetaData("taskErrors", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class))));
     tmpMap.put(_Fields.JOBS, new org.apache.thrift.meta_data.FieldMetaData("jobs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.job.JobModel.class))));
@@ -225,7 +211,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     String parentProcessId,
     long creationTime,
     long lastUpdateTime,
-    org.apache.airavata.model.status.TaskStatus taskStatus)
+    List<org.apache.airavata.model.status.TaskStatus> taskStatus)
   {
     this();
     this.taskId = taskId;
@@ -235,7 +221,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     setCreationTimeIsSet(true);
     this.lastUpdateTime = lastUpdateTime;
     setLastUpdateTimeIsSet(true);
-    this.taskStatus = taskStatus;
+    this.taskStatuses = taskStatus;
   }
 
   /**
@@ -255,7 +241,11 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     this.creationTime = other.creationTime;
     this.lastUpdateTime = other.lastUpdateTime;
     if (other.isSetTaskStatus()) {
-      this.taskStatus = new org.apache.airavata.model.status.TaskStatus(other.taskStatus);
+      List<org.apache.airavata.model.status.TaskStatus> __this__taskStatus = new ArrayList<org.apache.airavata.model.status.TaskStatus>(other.taskStatuses.size());
+      for (org.apache.airavata.model.status.TaskStatus other_element : other.taskStatuses) {
+        __this__taskStatus.add(new org.apache.airavata.model.status.TaskStatus(other_element));
+      }
+      this.taskStatuses = __this__taskStatus;
     }
     if (other.isSetTaskDetail()) {
       this.taskDetail = other.taskDetail;
@@ -264,7 +254,11 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       this.subTaskModel = org.apache.thrift.TBaseHelper.copyBinary(other.subTaskModel);
     }
     if (other.isSetTaskError()) {
-      this.taskError = new org.apache.airavata.model.commons.ErrorModel(other.taskError);
+      List<org.apache.airavata.model.commons.ErrorModel> __this__taskError = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(other.taskErrors.size());
+      for (org.apache.airavata.model.commons.ErrorModel other_element : other.taskErrors) {
+        __this__taskError.add(new org.apache.airavata.model.commons.ErrorModel(other_element));
+      }
+      this.taskErrors = __this__taskError;
     }
     if (other.isSetJobs()) {
       List<org.apache.airavata.model.job.JobModel> __this__jobs = new ArrayList<org.apache.airavata.model.job.JobModel>(other.jobs.size());
@@ -289,10 +283,10 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     this.creationTime = 0;
     setLastUpdateTimeIsSet(false);
     this.lastUpdateTime = 0;
-    this.taskStatus = null;
+    this.taskStatuses = null;
     this.taskDetail = null;
     this.subTaskModel = null;
-    this.taskError = null;
+    this.taskErrors = null;
     this.jobs = null;
   }
 
@@ -417,26 +411,41 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTUPDATETIME_ISSET_ID, value);
   }
 
-  public org.apache.airavata.model.status.TaskStatus getTaskStatus() {
-    return this.taskStatus;
+  public int getTaskStatusSize() {
+    return (this.taskStatuses == null) ? 0 : this.taskStatuses.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.status.TaskStatus> getTaskStatusIterator() {
+    return (this.taskStatuses == null) ? null : this.taskStatuses.iterator();
+  }
+
+  public void addToTaskStatus(org.apache.airavata.model.status.TaskStatus elem) {
+    if (this.taskStatuses == null) {
+      this.taskStatuses = new ArrayList<org.apache.airavata.model.status.TaskStatus>();
+    }
+    this.taskStatuses.add(elem);
+  }
+
+  public List<org.apache.airavata.model.status.TaskStatus> getTaskStatuses() {
+    return this.taskStatuses;
   }
 
-  public void setTaskStatus(org.apache.airavata.model.status.TaskStatus taskStatus) {
-    this.taskStatus = taskStatus;
+  public void setTaskStatuses(List<org.apache.airavata.model.status.TaskStatus> taskStatuses) {
+    this.taskStatuses = taskStatuses;
   }
 
   public void unsetTaskStatus() {
-    this.taskStatus = null;
+    this.taskStatuses = null;
   }
 
-  /** Returns true if field taskStatus is set (has been assigned a value) and false otherwise */
+  /** Returns true if field taskStatuses is set (has been assigned a value) and false otherwise */
   public boolean isSetTaskStatus() {
-    return this.taskStatus != null;
+    return this.taskStatuses != null;
   }
 
   public void setTaskStatusIsSet(boolean value) {
     if (!value) {
-      this.taskStatus = null;
+      this.taskStatuses = null;
     }
   }
 
@@ -495,26 +504,41 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     }
   }
 
-  public org.apache.airavata.model.commons.ErrorModel getTaskError() {
-    return this.taskError;
+  public int getTaskErrorSize() {
+    return (this.taskErrors == null) ? 0 : this.taskErrors.size();
   }
 
-  public void setTaskError(org.apache.airavata.model.commons.ErrorModel taskError) {
-    this.taskError = taskError;
+  public java.util.Iterator<org.apache.airavata.model.commons.ErrorModel> getTaskErrorIterator() {
+    return (this.taskErrors == null) ? null : this.taskErrors.iterator();
+  }
+
+  public void addToTaskError(org.apache.airavata.model.commons.ErrorModel elem) {
+    if (this.taskErrors == null) {
+      this.taskErrors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>();
+    }
+    this.taskErrors.add(elem);
+  }
+
+  public List<org.apache.airavata.model.commons.ErrorModel> getTaskErrors() {
+    return this.taskErrors;
+  }
+
+  public void setTaskErrors(List<org.apache.airavata.model.commons.ErrorModel> taskErrors) {
+    this.taskErrors = taskErrors;
   }
 
   public void unsetTaskError() {
-    this.taskError = null;
+    this.taskErrors = null;
   }
 
-  /** Returns true if field taskError is set (has been assigned a value) and false otherwise */
+  /** Returns true if field taskErrors is set (has been assigned a value) and false otherwise */
   public boolean isSetTaskError() {
-    return this.taskError != null;
+    return this.taskErrors != null;
   }
 
   public void setTaskErrorIsSet(boolean value) {
     if (!value) {
-      this.taskError = null;
+      this.taskErrors = null;
     }
   }
 
@@ -602,7 +626,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       if (value == null) {
         unsetTaskStatus();
       } else {
-        setTaskStatus((org.apache.airavata.model.status.TaskStatus)value);
+        setTaskStatuses((List<org.apache.airavata.model.status.TaskStatus>) value);
       }
       break;
 
@@ -626,7 +650,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       if (value == null) {
         unsetTaskError();
       } else {
-        setTaskError((org.apache.airavata.model.commons.ErrorModel)value);
+        setTaskErrors((List<org.apache.airavata.model.commons.ErrorModel>) value);
       }
       break;
 
@@ -659,7 +683,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       return getLastUpdateTime();
 
     case TASK_STATUS:
-      return getTaskStatus();
+      return getTaskStatuses();
 
     case TASK_DETAIL:
       return getTaskDetail();
@@ -668,7 +692,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       return getSubTaskModel();
 
     case TASK_ERROR:
-      return getTaskError();
+      return getTaskErrors();
 
     case JOBS:
       return getJobs();
@@ -771,7 +795,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     if (this_present_taskStatus || that_present_taskStatus) {
       if (!(this_present_taskStatus && that_present_taskStatus))
         return false;
-      if (!this.taskStatus.equals(that.taskStatus))
+      if (!this.taskStatuses.equals(that.taskStatuses))
         return false;
     }
 
@@ -798,7 +822,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     if (this_present_taskError || that_present_taskError) {
       if (!(this_present_taskError && that_present_taskError))
         return false;
-      if (!this.taskError.equals(that.taskError))
+      if (!this.taskErrors.equals(that.taskErrors))
         return false;
     }
 
@@ -846,7 +870,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     boolean present_taskStatus = true && (isSetTaskStatus());
     list.add(present_taskStatus);
     if (present_taskStatus)
-      list.add(taskStatus);
+      list.add(taskStatuses);
 
     boolean present_taskDetail = true && (isSetTaskDetail());
     list.add(present_taskDetail);
@@ -861,7 +885,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     boolean present_taskError = true && (isSetTaskError());
     list.add(present_taskError);
     if (present_taskError)
-      list.add(taskError);
+      list.add(taskErrors);
 
     boolean present_jobs = true && (isSetJobs());
     list.add(present_jobs);
@@ -934,7 +958,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       return lastComparison;
     }
     if (isSetTaskStatus()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskStatus, other.taskStatus);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskStatuses, other.taskStatuses);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -964,7 +988,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       return lastComparison;
     }
     if (isSetTaskError()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskError, other.taskError);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskErrors, other.taskErrors);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -1031,11 +1055,11 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     sb.append(this.lastUpdateTime);
     first = false;
     if (!first) sb.append(", ");
-    sb.append("taskStatus:");
-    if (this.taskStatus == null) {
+    sb.append("taskStatuses:");
+    if (this.taskStatuses == null) {
       sb.append("null");
     } else {
-      sb.append(this.taskStatus);
+      sb.append(this.taskStatuses);
     }
     first = false;
     if (isSetTaskDetail()) {
@@ -1060,11 +1084,11 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     }
     if (isSetTaskError()) {
       if (!first) sb.append(", ");
-      sb.append("taskError:");
-      if (this.taskError == null) {
+      sb.append("taskErrors:");
+      if (this.taskErrors == null) {
         sb.append("null");
       } else {
-        sb.append(this.taskError);
+        sb.append(this.taskErrors);
       }
       first = false;
     }
@@ -1105,16 +1129,10 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     }
 
     if (!isSetTaskStatus()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskStatus' is unset! Struct:" + toString());
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskStatuses' is unset! Struct:" + toString());
     }
 
     // check for sub-struct validity
-    if (taskStatus != null) {
-      taskStatus.validate();
-    }
-    if (taskError != null) {
-      taskError.validate();
-    }
   }
 
   private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -1194,9 +1212,19 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
             }
             break;
           case 6: // TASK_STATUS
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-              struct.taskStatus = new org.apache.airavata.model.status.TaskStatus();
-              struct.taskStatus.read(iprot);
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.taskStatuses = new ArrayList<org.apache.airavata.model.status.TaskStatus>(_list0.size);
+                org.apache.airavata.model.status.TaskStatus _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new org.apache.airavata.model.status.TaskStatus();
+                  _elem1.read(iprot);
+                  struct.taskStatuses.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
               struct.setTaskStatusIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -1219,9 +1247,19 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
             }
             break;
           case 9: // TASK_ERROR
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-              struct.taskError = new org.apache.airavata.model.commons.ErrorModel();
-              struct.taskError.read(iprot);
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.taskErrors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list3.size);
+                org.apache.airavata.model.commons.ErrorModel _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = new org.apache.airavata.model.commons.ErrorModel();
+                  _elem4.read(iprot);
+                  struct.taskErrors.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
               struct.setTaskErrorIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -1230,14 +1268,14 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
           case 10: // JOBS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
-                struct.jobs = new ArrayList<org.apache.airavata.model.job.JobModel>(_list0.size);
-                org.apache.airavata.model.job.JobModel _elem1;
-                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                org.apache.thrift.protocol.TList _list6 = iprot.readListBegin();
+                struct.jobs = new ArrayList<org.apache.airavata.model.job.JobModel>(_list6.size);
+                org.apache.airavata.model.job.JobModel _elem7;
+                for (int _i8 = 0; _i8 < _list6.size; ++_i8)
                 {
-                  _elem1 = new org.apache.airavata.model.job.JobModel();
-                  _elem1.read(iprot);
-                  struct.jobs.add(_elem1);
+                  _elem7 = new org.apache.airavata.model.job.JobModel();
+                  _elem7.read(iprot);
+                  struct.jobs.add(_elem7);
                 }
                 iprot.readListEnd();
               }
@@ -1280,9 +1318,16 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       oprot.writeFieldBegin(LAST_UPDATE_TIME_FIELD_DESC);
       oprot.writeI64(struct.lastUpdateTime);
       oprot.writeFieldEnd();
-      if (struct.taskStatus != null) {
+      if (struct.taskStatuses != null) {
         oprot.writeFieldBegin(TASK_STATUS_FIELD_DESC);
-        struct.taskStatus.write(oprot);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.taskStatuses.size()));
+          for (org.apache.airavata.model.status.TaskStatus _iter9 : struct.taskStatuses)
+          {
+            _iter9.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
         oprot.writeFieldEnd();
       }
       if (struct.taskDetail != null) {
@@ -1299,10 +1344,17 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
           oprot.writeFieldEnd();
         }
       }
-      if (struct.taskError != null) {
+      if (struct.taskErrors != null) {
         if (struct.isSetTaskError()) {
           oprot.writeFieldBegin(TASK_ERROR_FIELD_DESC);
-          struct.taskError.write(oprot);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.taskErrors.size()));
+            for (org.apache.airavata.model.commons.ErrorModel _iter10 : struct.taskErrors)
+            {
+              _iter10.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
       }
@@ -1311,9 +1363,9 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
           oprot.writeFieldBegin(JOBS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.jobs.size()));
-            for (org.apache.airavata.model.job.JobModel _iter3 : struct.jobs)
+            for (org.apache.airavata.model.job.JobModel _iter11 : struct.jobs)
             {
-              _iter3.write(oprot);
+              _iter11.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1342,7 +1394,13 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       oprot.writeString(struct.parentProcessId);
       oprot.writeI64(struct.creationTime);
       oprot.writeI64(struct.lastUpdateTime);
-      struct.taskStatus.write(oprot);
+      {
+        oprot.writeI32(struct.taskStatuses.size());
+        for (org.apache.airavata.model.status.TaskStatus _iter12 : struct.taskStatuses)
+        {
+          _iter12.write(oprot);
+        }
+      }
       BitSet optionals = new BitSet();
       if (struct.isSetTaskDetail()) {
         optionals.set(0);
@@ -1364,14 +1422,20 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
         oprot.writeBinary(struct.subTaskModel);
       }
       if (struct.isSetTaskError()) {
-        struct.taskError.write(oprot);
+        {
+          oprot.writeI32(struct.taskErrors.size());
+          for (org.apache.airavata.model.commons.ErrorModel _iter13 : struct.taskErrors)
+          {
+            _iter13.write(oprot);
+          }
+        }
       }
       if (struct.isSetJobs()) {
         {
           oprot.writeI32(struct.jobs.size());
-          for (org.apache.airavata.model.job.JobModel _iter4 : struct.jobs)
+          for (org.apache.airavata.model.job.JobModel _iter14 : struct.jobs)
           {
-            _iter4.write(oprot);
+            _iter14.write(oprot);
           }
         }
       }
@@ -1390,8 +1454,17 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       struct.setCreationTimeIsSet(true);
       struct.lastUpdateTime = iprot.readI64();
       struct.setLastUpdateTimeIsSet(true);
-      struct.taskStatus = new org.apache.airavata.model.status.TaskStatus();
-      struct.taskStatus.read(iprot);
+      {
+        org.apache.thrift.protocol.TList _list15 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+        struct.taskStatuses = new ArrayList<org.apache.airavata.model.status.TaskStatus>(_list15.size);
+        org.apache.airavata.model.status.TaskStatus _elem16;
+        for (int _i17 = 0; _i17 < _list15.size; ++_i17)
+        {
+          _elem16 = new org.apache.airavata.model.status.TaskStatus();
+          _elem16.read(iprot);
+          struct.taskStatuses.add(_elem16);
+        }
+      }
       struct.setTaskStatusIsSet(true);
       BitSet incoming = iprot.readBitSet(4);
       if (incoming.get(0)) {
@@ -1403,20 +1476,29 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
         struct.setSubTaskModelIsSet(true);
       }
       if (incoming.get(2)) {
-        struct.taskError = new org.apache.airavata.model.commons.ErrorModel();
-        struct.taskError.read(iprot);
+        {
+          org.apache.thrift.protocol.TList _list18 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.taskErrors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list18.size);
+          org.apache.airavata.model.commons.ErrorModel _elem19;
+          for (int _i20 = 0; _i20 < _list18.size; ++_i20)
+          {
+            _elem19 = new org.apache.airavata.model.commons.ErrorModel();
+            _elem19.read(iprot);
+            struct.taskErrors.add(_elem19);
+          }
+        }
         struct.setTaskErrorIsSet(true);
       }
       if (incoming.get(3)) {
         {
-          org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.jobs = new ArrayList<org.apache.airavata.model.job.JobModel>(_list5.size);
-          org.apache.airavata.model.job.JobModel _elem6;
-          for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+          org.apache.thrift.protocol.TList _list21 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.jobs = new ArrayList<org.apache.airavata.model.job.JobModel>(_list21.size);
+          org.apache.airavata.model.job.JobModel _elem22;
+          for (int _i23 = 0; _i23 < _list21.size; ++_i23)
           {
-            _elem6 = new org.apache.airavata.model.job.JobModel();
-            _elem6.read(iprot);
-            struct.jobs.add(_elem6);
+            _elem22 = new org.apache.airavata.model.job.JobModel();
+            _elem22.read(iprot);
+            struct.jobs.add(_elem22);
           }
         }
         struct.setJobsIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
index 0015a21..0fc54fe 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
@@ -210,9 +210,14 @@ public class GFacUtils {
 	public static void saveJobStatus(ProcessContext processContext, JobModel jobModel) throws GFacException {
 		try {
             // first we save job jobModel to the registry for sa and then save the job status.
-			JobStatus jobStatus = jobModel.getJobStatus();
+            JobStatus jobStatus = null;
+            if(jobModel.getJobStatuses() != null)
+			    jobStatus = jobModel.getJobStatuses().get(0);
+
             ExperimentCatalog experimentCatalog = processContext.getExperimentCatalog();
-            jobModel.setJobStatus(jobStatus);
+            List<JobStatus> statuses = new ArrayList<>();
+            statuses.add(jobStatus);
+            jobModel.setJobStatuses(statuses);
             if (jobStatus.getTimeOfStateChange() == 0 || jobStatus.getTimeOfStateChange() > 0 ){
                 jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
             }else {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
index 0e8c1f0..8a2cc4e 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
@@ -362,8 +362,8 @@ public class ProcessContext {
 	}
 
 	public ProcessState getProcessState() {
-		if(processModel.getProcessStatus() != null && processModel.getProcessStatus().size() > 0)
-			return processModel.getProcessStatus().get(0).getState();
+		if(processModel.getProcessStatuses() != null && processModel.getProcessStatuses().size() > 0)
+			return processModel.getProcessStatuses().get(0).getState();
 		else
 			return null;
 	}
@@ -374,13 +374,13 @@ public class ProcessContext {
 					getProcessState().name(), status.getState().name());
 			List<ProcessStatus> processStatuses = new ArrayList<>();
 			processStatuses.add(status);
-			processModel.setProcessStatus(processStatuses);
+			processModel.setProcessStatuses(processStatuses);
 		}
 	}
 
 	public ProcessStatus getProcessStatus(){
-		if(processModel.getProcessStatus() != null)
-			return processModel.getProcessStatus().get(0);
+		if(processModel.getProcessStatuses() != null)
+			return processModel.getProcessStatuses().get(0);
 		else
 			return null;
 	}

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/TaskContext.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/TaskContext.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/TaskContext.java
index 1a276b3..6f95d3d 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/TaskContext.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/TaskContext.java
@@ -30,6 +30,9 @@ import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.ArrayList;
+import java.util.List;
+
 public class TaskContext {
 	private static final Logger log = LoggerFactory.getLogger(TaskContext.class);
 
@@ -64,15 +67,23 @@ public class TaskContext {
 		log.info("expId: {}, processId: {}, taskId: {}, type: {}:- Task status changed {} -> {}", parentProcessContext
 				.getExperimentId(), parentProcessContext.getProcessId(), getTaskId(), getTaskType().name(),
 				getTaskState().name(), taskStatus .getState().name());
-		taskModel.setTaskStatus(taskStatus);
+		List<TaskStatus> taskStatuses = new ArrayList<>();
+		taskStatuses.add(taskStatus);
+		taskModel.setTaskStatuses(taskStatuses);
 	}
 
 	public TaskStatus getTaskStatus() {
-		return taskModel.getTaskStatus();
+		if(taskModel.getTaskStatuses() != null)
+			return taskModel.getTaskStatuses().get(0);
+		else
+			return null;
 	}
 
 	public TaskState getTaskState() {
-		return taskModel.getTaskStatus().getState();
+		if(taskModel.getTaskStatuses() != null)
+			return taskModel.getTaskStatuses().get(0).getState();
+		else
+			return null;
 	}
 
 	public TaskTypes getTaskType() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
index f64e521..90acacc 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
@@ -37,7 +37,6 @@ import org.apache.airavata.gfac.core.monitor.JobMonitor;
 import org.apache.airavata.gfac.core.task.JobSubmissionTask;
 import org.apache.airavata.gfac.core.task.Task;
 import org.apache.airavata.gfac.core.task.TaskException;
-import org.apache.airavata.gfac.impl.task.DataStageTask;
 import org.apache.airavata.gfac.impl.task.DataStreamingTask;
 import org.apache.airavata.gfac.impl.task.EnvironmentSetupTask;
 import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
@@ -53,19 +52,9 @@ import org.apache.airavata.model.commons.ErrorModel;
 import org.apache.airavata.model.data.movement.SecurityProtocol;
 import org.apache.airavata.model.job.JobModel;
 import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.status.JobState;
-import org.apache.airavata.model.status.JobStatus;
-import org.apache.airavata.model.status.ProcessState;
-import org.apache.airavata.model.status.ProcessStatus;
-import org.apache.airavata.model.status.TaskState;
-import org.apache.airavata.model.status.TaskStatus;
+import org.apache.airavata.model.status.*;
 import org.apache.airavata.model.task.*;
-import org.apache.airavata.registry.cpi.AppCatalog;
-import org.apache.airavata.registry.cpi.AppCatalogException;
-import org.apache.airavata.registry.cpi.ExpCatChildDataType;
-import org.apache.airavata.registry.cpi.ExperimentCatalog;
-import org.apache.airavata.registry.cpi.ExperimentCatalogModelType;
-import org.apache.airavata.registry.cpi.RegistryException;
+import org.apache.airavata.registry.cpi.*;
 import org.apache.airavata.registry.cpi.utils.Constants;
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.utils.ZKPaths;
@@ -339,7 +328,7 @@ public class GFacEngineImpl implements GFacEngine {
                     executeJobSubmission(taskContext, processContext.isRecovery());
                     // Don't put any checkpoint in between JobSubmission and Monitoring tasks
 
-                    JobStatus jobStatus = processContext.getJobModel().getJobStatus();
+                    JobStatus jobStatus = processContext.getJobModel().getJobStatuses().get(0);
                     if (jobStatus != null && (jobStatus.getJobState() == JobState.SUBMITTED
                             || jobStatus.getJobState() == JobState.QUEUED || jobStatus.getJobState() == JobState.ACTIVE)) {
 
@@ -350,7 +339,7 @@ public class GFacEngineImpl implements GFacEngine {
                                     if (output.isOutputStreaming()){
                                         TaskModel streamingTaskModel = new TaskModel();
                                         streamingTaskModel.setTaskType(TaskTypes.OUTPUT_FETCHING);
-                                        streamingTaskModel.setTaskStatus(new TaskStatus(TaskState.CREATED));
+                                        streamingTaskModel.setTaskStatuses(Arrays.asList(new TaskStatus(TaskState.CREATED)));
                                         streamingTaskModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
                                         streamingTaskModel.setParentProcessId(processContext.getProcessId());
                                         TaskContext streamingTaskContext = getTaskContext(processContext);
@@ -589,7 +578,7 @@ public class GFacEngineImpl implements GFacEngine {
         TaskModel taskModel = null;
         for (String taskId : taskExecutionOrder) {
             taskModel = taskMap.get(taskId);
-            TaskState state = taskModel.getTaskStatus().getState();
+            TaskState state = taskModel.getTaskStatuses().get(0).getState();
             if (state == TaskState.CREATED || state == TaskState.EXECUTING) {
                 recoverTaskId = taskId;
                 break;
@@ -786,7 +775,7 @@ public class GFacEngineImpl implements GFacEngine {
         taskModel.setLastUpdateTime(taskModel.getCreationTime());
         TaskStatus taskStatus = new TaskStatus(TaskState.CREATED);
         taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-        taskModel.setTaskStatus(taskStatus);
+        taskModel.setTaskStatuses(Arrays.asList(taskStatus));
         taskModel.setTaskType(TaskTypes.JOB_SUBMISSION);
         taskCtx.setTaskModel(taskModel);
         return taskCtx;
@@ -803,7 +792,7 @@ public class GFacEngineImpl implements GFacEngine {
         taskModel.setLastUpdateTime(taskModel.getCreationTime());
         TaskStatus taskStatus = new TaskStatus(TaskState.CREATED);
         taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-        taskModel.setTaskStatus(taskStatus);
+        taskModel.setTaskStatuses(Arrays.asList(taskStatus));
         taskModel.setTaskType(TaskTypes.DATA_STAGING);
         // create data staging sub task model
         String remoteOutputDir = processContext.getOutputDir();

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ArchiveTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ArchiveTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ArchiveTask.java
index 755eed5..df22654 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ArchiveTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ArchiveTask.java
@@ -54,6 +54,7 @@ import org.slf4j.LoggerFactory;
 import java.io.File;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.Arrays;
 import java.util.Map;
 
 public class ArchiveTask implements Task {
@@ -89,7 +90,7 @@ public class ArchiveTask implements Task {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
             return status;
         }
 
@@ -159,7 +160,7 @@ public class ArchiveTask implements Task {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         }
         return status;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/BESJobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/BESJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/BESJobSubmissionTask.java
index 6529395..a4dcb5d 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/BESJobSubmissionTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/BESJobSubmissionTask.java
@@ -35,7 +35,6 @@ import org.apache.airavata.gfac.core.GFacException;
 import org.apache.airavata.gfac.core.GFacUtils;
 import org.apache.airavata.gfac.core.SSHApiException;
 import org.apache.airavata.gfac.core.authentication.AuthenticationInfo;
-import org.apache.airavata.gfac.core.authentication.SSHKeyAuthentication;
 import org.apache.airavata.gfac.core.cluster.ServerInfo;
 import org.apache.airavata.gfac.core.context.ProcessContext;
 import org.apache.airavata.gfac.core.context.TaskContext;
@@ -73,6 +72,7 @@ import java.io.File;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.List;
 import java.util.Map;
@@ -169,7 +169,7 @@ public class BESJobSubmissionTask implements JobSubmissionTask {
             log.info("JobID: " + jobId);
             jobDetails.setJobId(jobId);
             jobDetails.setJobDescription(activityEpr.toString());
-            jobDetails.setJobStatus(new JobStatus(JobState.SUBMITTED));
+            jobDetails.setJobStatuses(Arrays.asList(new JobStatus(JobState.SUBMITTED)));
             processContext.setJobModel(jobDetails);
             GFacUtils.saveJobModel(processContext, jobDetails);
             GFacUtils.saveJobStatus(processContext, jobDetails);
@@ -198,7 +198,7 @@ public class BESJobSubmissionTask implements JobSubmissionTask {
                 log.error(error);
 
                 JobState applicationJobStatus = JobState.FAILED;
-                jobDetails.setJobStatus(new JobStatus(applicationJobStatus));
+                jobDetails.setJobStatuses(Arrays.asList(new JobStatus(applicationJobStatus)));
                 sendNotification(processContext, jobDetails);
                 try {Thread.sleep(5000);} catch (InterruptedException e) {}
 
@@ -208,7 +208,7 @@ public class BESJobSubmissionTask implements JobSubmissionTask {
 
             } else if (activityStatus.getState() == ActivityStateEnumeration.CANCELLED) {
                 JobState applicationJobStatus = JobState.CANCELED;
-                jobDetails.setJobStatus(new JobStatus(applicationJobStatus));
+                jobDetails.setJobStatuses(Arrays.asList(new JobStatus(applicationJobStatus)));
                 GFacUtils.saveJobStatus(processContext, jobDetails);
                 throw new GFacException(
                         processContext.getExperimentId() + "Job Canceled");
@@ -218,7 +218,7 @@ public class BESJobSubmissionTask implements JobSubmissionTask {
                 } catch (InterruptedException ignored) {
                 }
                 JobState applicationJobStatus = JobState.COMPLETE;
-                jobDetails.setJobStatus(new JobStatus(applicationJobStatus));
+                jobDetails.setJobStatuses(Arrays.asList(new JobStatus(applicationJobStatus)));
                 GFacUtils.saveJobStatus(processContext, jobDetails);
                 log.info("Job Id: {}, exit code: {}, exit status: {}", jobDetails.getJobId(),
                         activityStatus.getExitCode(), ActivityStateEnumeration.FINISHED.toString());

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DataStageTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DataStageTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DataStageTask.java
index 69e8d77..8c6a125 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DataStageTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DataStageTask.java
@@ -20,7 +20,6 @@
  */
 package org.apache.airavata.gfac.impl.task;
 
-import org.apache.airavata.common.utils.ThriftUtils;
 import org.apache.airavata.gfac.core.SSHApiException;
 import org.apache.airavata.gfac.core.context.TaskContext;
 import org.apache.airavata.gfac.core.task.Task;
@@ -37,6 +36,7 @@ import org.slf4j.LoggerFactory;
 
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.Arrays;
 import java.util.Map;
 
 public class DataStageTask implements Task {
@@ -83,7 +83,7 @@ public class DataStageTask implements Task {
 				ErrorModel errorModel = new ErrorModel();
 				errorModel.setActualErrorMessage(e.getMessage());
 				errorModel.setUserFriendlyMessage(msg);
-				taskContext.getTaskModel().setTaskError(errorModel);
+				taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
 			} catch (TException e) {
 				String msg = "Invalid task invocation";
 				log.error(msg, e);
@@ -92,7 +92,7 @@ public class DataStageTask implements Task {
 				ErrorModel errorModel = new ErrorModel();
 				errorModel.setActualErrorMessage(e.getMessage());
 				errorModel.setUserFriendlyMessage(msg);
-				taskContext.getTaskModel().setTaskError(errorModel);
+				taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
 			} catch (URISyntaxException e) {
 				String msg = "source or destination is not a valid URI";
 				log.error(msg, e);
@@ -101,7 +101,7 @@ public class DataStageTask implements Task {
 				ErrorModel errorModel = new ErrorModel();
 				errorModel.setActualErrorMessage(e.getMessage());
 				errorModel.setUserFriendlyMessage(msg);
-				taskContext.getTaskModel().setTaskError(errorModel);
+				taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
 			}
 		}
 		return status;

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
index b7f150f..a131ef5 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
@@ -24,7 +24,6 @@ package org.apache.airavata.gfac.impl.task;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.AiravataUtils;
 import org.apache.airavata.gfac.core.*;
-import org.apache.airavata.gfac.core.cluster.CommandInfo;
 import org.apache.airavata.gfac.core.cluster.JobSubmissionOutput;
 import org.apache.airavata.gfac.core.cluster.RawCommandInfo;
 import org.apache.airavata.gfac.core.cluster.RemoteCluster;
@@ -49,6 +48,9 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
 
 public class DefaultJobSubmissionTask implements JobSubmissionTask {
@@ -92,8 +94,10 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask {
                 if (exitCode != 0 || jobSubmissionOutput.isJobSubmissionFailed()) {
 					jobModel.setJobId(DEFAULT_JOB_ID);
 					if (jobSubmissionOutput.isJobSubmissionFailed()) {
-						jobModel.setJobStatus(new JobStatus(JobState.FAILED));
-						jobModel.getJobStatus().setReason(jobSubmissionOutput.getFailureReason());
+						List<JobStatus> statusList = new ArrayList<>();
+						statusList.add(new JobStatus(JobState.FAILED));
+						statusList.get(0).setReason(jobSubmissionOutput.getFailureReason());
+						jobModel.setJobStatuses(statusList);
 						GFacUtils.saveJobModel(processContext, jobModel);
 						log.error("expId: {}, processid: {}, taskId: {} :- Job submission failed for job name {}",
                                 experimentId, taskContext.getProcessId(), taskContext.getTaskId(), jobModel.getJobName());
@@ -150,13 +154,13 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask {
                             .getComputeResourceDescription();
                     jobStatus.setReason("Successfully Submitted to " + computeResourceDescription.getHostName());
                     jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-				    jobModel.setJobStatus(jobStatus);
+				    jobModel.setJobStatuses(Arrays.asList(jobStatus));
 				    GFacUtils.saveJobStatus(taskContext.getParentProcessContext(), jobModel);
 				    if (verifyJobSubmissionByJobId(remoteCluster, jobId)) {
 					    jobStatus.setJobState(JobState.QUEUED);
 					    jobStatus.setReason("Verification step succeeded");
                         jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-					    jobModel.setJobStatus(jobStatus);
+					    jobModel.setJobStatuses(Arrays.asList(jobStatus));
 					    GFacUtils.saveJobStatus(taskContext.getParentProcessContext(), jobModel);
 				    }
                     // doing gateway reporting
@@ -184,7 +188,7 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask {
 							jobStatus.setJobState(JobState.QUEUED);
 							jobStatus.setReason("Verification step succeeded");
 							jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-							jobModel.setJobStatus(jobStatus);
+							jobModel.setJobStatuses(Arrays.asList(jobStatus));
 							GFacUtils.saveJobStatus(taskContext.getParentProcessContext(), jobModel);
 							taskStatus.setState(TaskState.COMPLETED);
 							taskStatus.setReason("Submitted job to compute resource");
@@ -233,7 +237,7 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask {
 		    ErrorModel errorModel = new ErrorModel();
 		    errorModel.setActualErrorMessage(e.getMessage());
 		    errorModel.setUserFriendlyMessage(msg);
-		    taskContext.getTaskModel().setTaskError(errorModel);
+		    taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
 	    } catch (ApplicationSettingsException | GFacException e) {
 		    String msg = "Error occurred while creating job descriptor";
 		    log.error(msg, e);
@@ -243,7 +247,7 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask {
 		    ErrorModel errorModel = new ErrorModel();
 		    errorModel.setActualErrorMessage(e.getMessage());
 		    errorModel.setUserFriendlyMessage(msg);
-		    taskContext.getTaskModel().setTaskError(errorModel);
+		    taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
 	    } catch (SSHApiException e) {
 		    String msg = "Error occurred while submitting the job";
 		    log.error(msg, e);
@@ -253,7 +257,7 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask {
 		    ErrorModel errorModel = new ErrorModel();
 		    errorModel.setActualErrorMessage(e.getMessage());
 		    errorModel.setUserFriendlyMessage(msg);
-		    taskContext.getTaskModel().setTaskError(errorModel);
+		    taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
 	    } catch (IOException e) {
 		    String msg = "Error while reading the content of the job file";
 		    log.error(msg, e);
@@ -263,7 +267,7 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask {
 		    ErrorModel errorModel = new ErrorModel();
 		    errorModel.setActualErrorMessage(e.getMessage());
 		    errorModel.setUserFriendlyMessage(msg);
-		    taskContext.getTaskModel().setTaskError(errorModel);
+		    taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
 	    } catch (InterruptedException e) {
 		    String msg = "Error occurred while verifying the job submission";
 		    log.error(msg, e);
@@ -273,7 +277,7 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask {
 		    ErrorModel errorModel = new ErrorModel();
 		    errorModel.setActualErrorMessage(e.getMessage());
 		    errorModel.setUserFriendlyMessage(msg);
-		    taskContext.getTaskModel().setTaskError(errorModel);
+		    taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
 	    } catch (RegistryException e) {
             e.printStackTrace();
         }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/EnvironmentSetupTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/EnvironmentSetupTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/EnvironmentSetupTask.java
index 1256e48..7de0282 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/EnvironmentSetupTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/EnvironmentSetupTask.java
@@ -32,6 +32,7 @@ import org.apache.airavata.model.task.TaskTypes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Arrays;
 import java.util.Map;
 
 public class EnvironmentSetupTask implements Task {
@@ -57,7 +58,7 @@ public class EnvironmentSetupTask implements Task {
 			ErrorModel errorModel = new ErrorModel();
 			errorModel.setActualErrorMessage(e.getMessage());
 			errorModel.setUserFriendlyMessage(msg);
-			taskContext.getTaskModel().setTaskError(errorModel);
+			taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
 		}
 		return status;
 	}

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ForkJobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ForkJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ForkJobSubmissionTask.java
index 59a36e1..b57b68d 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ForkJobSubmissionTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ForkJobSubmissionTask.java
@@ -46,6 +46,7 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Map;
 
 public class ForkJobSubmissionTask implements JobSubmissionTask {
@@ -87,7 +88,7 @@ public class ForkJobSubmissionTask implements JobSubmissionTask {
                     jobStatus.setReason("Successfully Submitted to " + taskContext.getParentProcessContext()
                             .getComputeResourceDescription().getHostName());
                     jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-                    jobModel.setJobStatus(jobStatus);
+                    jobModel.setJobStatuses(Arrays.asList(jobStatus));
                     GFacUtils.saveJobStatus(taskContext.getParentProcessContext(), jobModel);
                     taskStatus = new TaskStatus(TaskState.COMPLETED);
                     taskStatus.setReason("Submitted job to compute resource");
@@ -124,7 +125,7 @@ public class ForkJobSubmissionTask implements JobSubmissionTask {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         } catch (AppCatalogException e) {
             String msg = "Error while instantiating app catalog";
             log.error(msg, e);
@@ -133,7 +134,7 @@ public class ForkJobSubmissionTask implements JobSubmissionTask {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         } catch (GFacException e) {
             String msg = "Error occurred while creating job descriptor";
             log.error(msg, e);
@@ -142,7 +143,7 @@ public class ForkJobSubmissionTask implements JobSubmissionTask {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         } catch (SSHApiException e) {
             String msg = "Error occurred while submitting the job";
             log.error(msg, e);
@@ -151,7 +152,7 @@ public class ForkJobSubmissionTask implements JobSubmissionTask {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         } catch (IOException e) {
             String msg = "Error while reading the content of the job file";
             log.error(msg, e);
@@ -160,7 +161,7 @@ public class ForkJobSubmissionTask implements JobSubmissionTask {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         }
         return taskStatus;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SCPDataStageTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SCPDataStageTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SCPDataStageTask.java
index 904d486..6a8800e 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SCPDataStageTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SCPDataStageTask.java
@@ -24,7 +24,6 @@ import com.jcraft.jsch.JSchException;
 import com.jcraft.jsch.Session;
 import org.apache.airavata.common.exception.AiravataException;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.ThriftUtils;
 import org.apache.airavata.gfac.core.GFacException;
 import org.apache.airavata.gfac.core.GFacUtils;
 import org.apache.airavata.gfac.core.SSHApiException;
@@ -57,6 +56,7 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.Arrays;
 import java.util.Map;
 
 /**
@@ -179,7 +179,7 @@ public class SCPDataStageTask implements Task {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
             return status;
         } catch (ApplicationSettingsException | FileNotFoundException e) {
             String msg = "Failed while reading credentials";
@@ -189,7 +189,7 @@ public class SCPDataStageTask implements Task {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         } catch (URISyntaxException e) {
             String msg = "Source or destination uri is not correct source : " + subTaskModel.getSource() + ", " +
                     "destination : " + subTaskModel.getDestination();
@@ -199,7 +199,7 @@ public class SCPDataStageTask implements Task {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         } catch (SSHApiException e) {
             String msg = e.getMessage();
             log.error(msg, e);
@@ -208,7 +208,7 @@ public class SCPDataStageTask implements Task {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         } catch (AiravataException e) {
             String msg = "Error while creating ssh session with client";
             log.error(msg, e);
@@ -217,7 +217,7 @@ public class SCPDataStageTask implements Task {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         } catch (JSchException | IOException e) {
             String msg = "Failed to do scp with client";
             log.error(msg, e);
@@ -226,7 +226,7 @@ public class SCPDataStageTask implements Task {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         } catch (GFacException e) {
             String msg = "Failed update experiment and process inputs and outputs";
             log.error(msg, e);
@@ -235,7 +235,7 @@ public class SCPDataStageTask implements Task {
             ErrorModel errorModel = new ErrorModel();
             errorModel.setActualErrorMessage(e.getMessage());
             errorModel.setUserFriendlyMessage(msg);
-            taskContext.getTaskModel().setTaskError(errorModel);
+            taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
         }
         return status;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/utils/StreamData.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/utils/StreamData.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/utils/StreamData.java
index 76b678a..375e570 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/utils/StreamData.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/utils/StreamData.java
@@ -24,15 +24,11 @@ package org.apache.airavata.gfac.impl.task.utils;
 import com.jcraft.jsch.JSchException;
 import com.jcraft.jsch.Session;
 import org.apache.airavata.common.exception.AiravataException;
-import org.apache.airavata.credential.store.credential.Credential;
-import org.apache.airavata.credential.store.credential.impl.ssh.SSHCredential;
-import org.apache.airavata.credential.store.store.CredentialReader;
 import org.apache.airavata.credential.store.store.CredentialStoreException;
 import org.apache.airavata.gfac.core.GFacException;
 import org.apache.airavata.gfac.core.GFacUtils;
 import org.apache.airavata.gfac.core.SSHApiException;
 import org.apache.airavata.gfac.core.authentication.AuthenticationInfo;
-import org.apache.airavata.gfac.core.authentication.SSHKeyAuthentication;
 import org.apache.airavata.gfac.core.cluster.CommandInfo;
 import org.apache.airavata.gfac.core.cluster.RawCommandInfo;
 import org.apache.airavata.gfac.core.cluster.RemoteCluster;
@@ -40,7 +36,6 @@ import org.apache.airavata.gfac.core.cluster.ServerInfo;
 import org.apache.airavata.gfac.core.context.TaskContext;
 import org.apache.airavata.gfac.impl.Factory;
 import org.apache.airavata.gfac.impl.SSHUtils;
-import org.apache.airavata.model.commons.ErrorModel;
 import org.apache.airavata.model.status.JobState;
 import org.apache.airavata.model.status.JobStatus;
 import org.apache.airavata.model.task.DataStagingTaskModel;
@@ -48,7 +43,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -78,7 +72,7 @@ public class StreamData extends TimerTask  {
     public void run() {
         try {
             // output staging should start when the job is in active state
-            JobStatus jobStatus = taskContext.getParentProcessContext().getJobModel().getJobStatus();
+            JobStatus jobStatus = taskContext.getParentProcessContext().getJobModel().getJobStatuses().get(0);
             if (jobStatus != null && jobStatus.getJobState().equals(JobState.ACTIVE)){
                 runOutputStaging();
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java
index b2df00b..b24aa75 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java
@@ -135,7 +135,7 @@ public class EmailBasedMonitor implements JobMonitor, Runnable{
                     newJobStatus.setReason("Moving job status to cancel, as we didn't see any email from this job " +
                             "for a while after execute job cancel command. This may happen if job was in queued state " +
                             "when we run the cancel command");
-                    jobModel.setJobStatus(newJobStatus);
+                    jobModel.setJobStatuses(Arrays.asList(newJobStatus));
                     GFacUtils.saveJobStatus(pc, jobModel);
                 }
                 ProcessStatus pStatus = new ProcessStatus(ProcessState.CANCELLING);
@@ -374,7 +374,7 @@ public class EmailBasedMonitor implements JobMonitor, Runnable{
         }
 	    if (jobStatus.getJobState() != null) {
 		    try {
-			    jobModel.setJobStatus(jobStatus);
+			    jobModel.setJobStatuses(Arrays.asList(jobStatus));
 			    log.info("[EJM]: Publishing status changes to amqp. " + jobDetails);
 			    GFacUtils.saveJobStatus(parentProcessContext, jobModel);
 		    } catch (GFacException e) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
index 73a6aef..b1218e4 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
@@ -217,7 +217,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
         // FIXME
 //        List<JobDetails> jobDetailsList = task.getJobDetailsList();
 //        for(JobDetails jobDetails:jobDetailsList) {
-//            JobState jobState = jobDetails.getJobStatus().getJobState();
+//            JobState jobState = jobDetails.getJobStatuses().getJobState();
 //            if (jobState.getValue() > 4){
 //                logger.error("Cannot cancel the job, because current job state is : " + jobState.toString() +
 //                "jobId: " + jobDetails.getJobID() + " Job Name: " + jobDetails.getJobName());
@@ -346,7 +346,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
         List<String> envTaskIds = new ArrayList<>();
         TaskModel envSetupTask = new TaskModel();
         envSetupTask.setTaskType(TaskTypes.ENV_SETUP);
-        envSetupTask.setTaskStatus(new TaskStatus(TaskState.CREATED));
+        envSetupTask.setTaskStatuses(Arrays.asList(new TaskStatus(TaskState.CREATED)));
         envSetupTask.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
         envSetupTask.setParentProcessId(processModel.getProcessId());
         EnvironmentSetupTaskModel envSetupSubModel = new EnvironmentSetupTaskModel();
@@ -487,7 +487,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
         taskModel.setLastUpdateTime(taskModel.getCreationTime());
         TaskStatus taskStatus = new TaskStatus(TaskState.CREATED);
         taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-        taskModel.setTaskStatus(taskStatus);
+        taskModel.setTaskStatuses(Arrays.asList(taskStatus));
         taskModel.setTaskType(TaskTypes.JOB_SUBMISSION);
         JobSubmissionTaskModel submissionSubTask = new JobSubmissionTaskModel();
         submissionSubTask.setMonitorMode(monitorMode);
@@ -508,7 +508,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
             monitorTaskModel.setLastUpdateTime(monitorTaskModel.getCreationTime());
             TaskStatus monitorTaskStatus = new TaskStatus(TaskState.CREATED);
             monitorTaskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-            monitorTaskModel.setTaskStatus(monitorTaskStatus);
+            monitorTaskModel.setTaskStatuses(Arrays.asList(monitorTaskStatus));
             monitorTaskModel.setTaskType(TaskTypes.MONITORING);
             MonitorTaskModel monitorSubTaskModel = new MonitorTaskModel();
             monitorSubTaskModel.setMonitorMode(monitorMode);
@@ -538,7 +538,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
         taskModel.setLastUpdateTime(taskModel.getCreationTime());
         TaskStatus taskStatus = new TaskStatus(TaskState.CREATED);
         taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-        taskModel.setTaskStatus(taskStatus);
+        taskModel.setTaskStatuses(Arrays.asList(taskStatus));
         taskModel.setTaskType(TaskTypes.DATA_STAGING);
         // create data staging sub task model
         DataStagingTaskModel submodel = new DataStagingTaskModel();
@@ -576,7 +576,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
             taskModel.setLastUpdateTime(taskModel.getCreationTime());
             TaskStatus taskStatus = new TaskStatus(TaskState.CREATED);
             taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-            taskModel.setTaskStatus(taskStatus);
+            taskModel.setTaskStatuses(Arrays.asList(taskStatus));
             taskModel.setTaskType(TaskTypes.DATA_STAGING);
             ComputeResourcePreference computeResourcePreference = OrchestratorUtils.getComputeResourcePreference(orchestratorContext, processModel, gatewayId);
             ComputeResourceDescription computeResource = orchestratorContext.getRegistry().getAppCatalog().getComputeResource().getComputeResource(processModel.getComputeResourceId());

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobEntity.java
index a66295e..763f5da 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobEntity.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/JobEntity.java
@@ -38,7 +38,7 @@ public class JobEntity {
     private String stdErr;
     private int exitCode;
 
-    private List<JobStatusEntity> jobStatus;
+    private List<JobStatusEntity> jobStatuses;
 
     private TaskEntity task;
 
@@ -145,12 +145,12 @@ public class JobEntity {
     }
 
     @OneToMany(targetEntity = JobStatusEntity.class, cascade = CascadeType.ALL, mappedBy = "job")
-    public List<JobStatusEntity> getJobStatus() {
-        return jobStatus;
+    public List<JobStatusEntity> getJobStatuses() {
+        return jobStatuses;
     }
 
-    public void setJobStatus(List<JobStatusEntity> jobStatus) {
-        this.jobStatus = jobStatus;
+    public void setJobStatuses(List<JobStatusEntity> jobStatus) {
+        this.jobStatuses = jobStatus;
     }
 
     @ManyToOne(targetEntity = TaskEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessEntity.java
index 109041e..a379ef6 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessEntity.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessEntity.java
@@ -45,8 +45,8 @@ public class ProcessEntity {
     private String experimentDataDir;
     private String userName;
 
-    private List<ProcessStatusEntity> processStatus;
-    private List<ProcessErrorEntity> processError;
+    private List<ProcessStatusEntity> processStatuses;
+    private List<ProcessErrorEntity> processErrors;
     private List<ProcessInputEntity> processInputs;
     private List<ProcessOutputEntity> processOutputs;
     private ProcessResourceSchedulingEntity processResourceSchedule;
@@ -211,21 +211,21 @@ public class ProcessEntity {
     }
 
     @OneToMany(targetEntity = ProcessStatusEntity.class, cascade = CascadeType.ALL, mappedBy = "process")
-    public List<ProcessStatusEntity> getProcessStatus() {
-        return processStatus;
+    public List<ProcessStatusEntity> getProcessStatuses() {
+        return processStatuses;
     }
 
-    public void setProcessStatus(List<ProcessStatusEntity> processStatus) {
-        this.processStatus = processStatus;
+    public void setProcessStatuses(List<ProcessStatusEntity> processStatus) {
+        this.processStatuses = processStatus;
     }
 
     @OneToMany(targetEntity = ProcessErrorEntity.class, cascade = CascadeType.ALL, mappedBy = "process")
-    public List<ProcessErrorEntity> getProcessError() {
-        return processError;
+    public List<ProcessErrorEntity> getProcessErrors() {
+        return processErrors;
     }
 
-    public void setProcessError(List<ProcessErrorEntity> processError) {
-        this.processError = processError;
+    public void setProcessErrors(List<ProcessErrorEntity> processError) {
+        this.processErrors = processError;
     }
 
     @OneToMany(targetEntity = ProcessInputEntity.class, cascade = CascadeType.ALL, mappedBy = "process")

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/TaskEntity.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/TaskEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/TaskEntity.java
index f01fa10..8e4be82 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/TaskEntity.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/TaskEntity.java
@@ -37,8 +37,8 @@ public class TaskEntity {
     private String taskDetail;
     private ByteBuffer subTaskModel;
 
-    private List<TaskStatusEntity> taskStatus;
-    private List<TaskErrorEntity> taskError;
+    private List<TaskStatusEntity> taskStatuses;
+    private List<TaskErrorEntity> taskErrors;
     private List<JobEntity> jobs;
 
     private ProcessEntity process;
@@ -109,21 +109,21 @@ public class TaskEntity {
     }
 
     @OneToMany(targetEntity = TaskStatusEntity.class, cascade = CascadeType.ALL, mappedBy = "task")
-    public List<TaskStatusEntity> getTaskStatus() {
-        return taskStatus;
+    public List<TaskStatusEntity> getTaskStatuses() {
+        return taskStatuses;
     }
 
-    public void setTaskStatus(List<TaskStatusEntity> taskStatus) {
-        this.taskStatus = taskStatus;
+    public void setTaskStatuses(List<TaskStatusEntity> taskStatus) {
+        this.taskStatuses = taskStatus;
     }
 
     @OneToMany(targetEntity = TaskErrorEntity.class, cascade = CascadeType.ALL, mappedBy = "task")
-    public List<TaskErrorEntity> getTaskError() {
-        return taskError;
+    public List<TaskErrorEntity> getTaskErrors() {
+        return taskErrors;
     }
 
-    public void setTaskError(List<TaskErrorEntity> taskError) {
-        this.taskError = taskError;
+    public void setTaskErrors(List<TaskErrorEntity> taskError) {
+        this.taskErrors = taskError;
     }
 
     @OneToMany(targetEntity = JobEntity.class, cascade = CascadeType.ALL, mappedBy = "task")

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepository.java
----------------------------------------------------------------------
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepository.java
index d30b1de..a79a462 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepository.java
@@ -73,10 +73,10 @@ public class ExperimentRepository extends AbstractRepository<ExperimentModel, Ex
                     process.getProcessInputs().forEach(proInput->proInput.setProceseId(processId));
                 if(process.getProcessOutputs() != null)
                     process.getProcessOutputs().forEach(proOutput->proOutput.setProcessId(processId));
-                if(process.getProcessError() != null)
-                    process.getProcessError().forEach(processErr->processErr.setProcessId(processId));
-                if(process.getProcessStatus() != null)
-                    process.getProcessStatus().forEach(processStat->processStat.setProcessId(processId));
+                if(process.getProcessErrors() != null)
+                    process.getProcessErrors().forEach(processErr->processErr.setProcessId(processId));
+                if(process.getProcessStatuses() != null)
+                    process.getProcessStatuses().forEach(processStat->processStat.setProcessId(processId));
 
                 if(process.getTasks() != null){
                     process.getTasks().forEach(task->{

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index f66b283..8465af4 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -309,8 +309,8 @@ public class ExperimentRegistry {
             processStatuses.add(processStatus);
             addProcessStatus(processStatuses.get(0), process.getProcessId());
 
-            if(process.getProcessError() != null) {
-                addProcessError(process.getProcessError().get(0), process.getProcessId());
+            if(process.getProcessErrors() != null) {
+                addProcessError(process.getProcessErrors().get(0), process.getProcessId());
             }
         } catch (Exception e) {
             logger.error(expId, "Error while adding process...", e);
@@ -463,8 +463,8 @@ public class ExperimentRegistry {
             taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
 	        addTaskStatus(taskStatus, task.getTaskId());
 
-            if(task.getTaskError() != null) {
-                addTaskError(task.getTaskError(), task.getTaskId());
+            if(task.getTaskErrors() != null) {
+                addTaskError(task.getTaskErrors().get(0), task.getTaskId());
             }
         } catch (Exception e) {
             logger.error(processID, "Error while adding task...", e);
@@ -763,11 +763,11 @@ public class ExperimentRegistry {
             if(process.getProcessOutputs() != null && process.getProcessOutputs().size() > 0) {
                 updateProcessOutputs(process.getProcessOutputs(), process.getProcessId());
             }
-            if(process.getProcessStatus() != null) {
-                updateProcessStatus(process.getProcessStatus().get(0), process.getProcessId());
+            if(process.getProcessStatuses() != null) {
+                updateProcessStatus(process.getProcessStatuses().get(0), process.getProcessId());
             }
-            if(process.getProcessError() != null) {
-                updateProcessError(process.getProcessError().get(0), process.getProcessId());
+            if(process.getProcessErrors() != null) {
+                updateProcessError(process.getProcessErrors().get(0), process.getProcessId());
             }
             if(process.getTasks() != null && process.getTasks().size() > 0){
                 for(TaskModel task : process.getTasks()){
@@ -883,11 +883,11 @@ public class ExperimentRegistry {
             taskResource.setSubTaskModel(task.getSubTaskModel());
             taskResource.save();
 
-            if(task.getTaskError() != null) {
-                updateTaskError(task.getTaskError(), task.getTaskId());
+            if(task.getTaskErrors() != null) {
+                updateTaskError(task.getTaskErrors().get(0), task.getTaskId());
             }
-            if(task.getTaskError() != null) {
-                updateTaskError(task.getTaskError(), task.getTaskId());
+            if(task.getTaskErrors() != null) {
+                updateTaskError(task.getTaskErrors().get(0), task.getTaskId());
             }
         } catch (Exception e) {
             logger.error(taskID, "Error while adding task...", e);
@@ -1252,7 +1252,9 @@ public class ExperimentRegistry {
 	                if (latestSR != null) {
 		                JobStatus jobStatus = new JobStatus(JobState.valueOf(latestSR.getState()));
 		                jobStatus.setReason(latestSR.getReason());
-		                jobModel.setJobStatus(jobStatus);
+                        List<JobStatus> statuses = new ArrayList<>();
+                        statuses.add(jobStatus);
+		                jobModel.setJobStatuses(statuses);
 	                }
 	                jobs.add(jobModel);
                 }
@@ -1267,7 +1269,9 @@ public class ExperimentRegistry {
                     if (latestSR != null) {
                         JobStatus jobStatus = new JobStatus(JobState.valueOf(latestSR.getState()));
                         jobStatus.setReason(latestSR.getReason());
-                        jobModel.setJobStatus(jobStatus);
+                        List<JobStatus> statuses = new ArrayList<>();
+                        statuses.add(jobStatus);
+                        jobModel.setJobStatuses(statuses);
                     }
                     jobs.add(jobModel);
                 }


[3/3] airavata git commit: making errors and statuses list in Process and Task models

Posted by sc...@apache.org.
making errors and statuses list in Process and Task models


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/b46fd511
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/b46fd511
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/b46fd511

Branch: refs/heads/supun/develop
Commit: b46fd511789f4f58a6e2a89f0e608240c844baad
Parents: eee49d3
Author: scnakandala <su...@gmail.com>
Authored: Mon Aug 29 16:06:08 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Mon Aug 29 16:06:08 2016 -0400

----------------------------------------------------------------------
 .../resources/lib/airavata/job_model_types.cpp  |  86 ++++--
 .../resources/lib/airavata/job_model_types.h    |   4 +-
 .../resources/lib/airavata/task_model_types.cpp | 242 ++++++++-------
 .../resources/lib/airavata/task_model_types.h   |   8 +-
 .../resources/lib/Airavata/Model/Task/Types.php | 102 +++++--
 .../resources/lib/Airavata/Model/job/Types.php  |  41 ++-
 .../lib/apache/airavata/model/job/ttypes.py     |  20 +-
 .../lib/apache/airavata/model/task/ttypes.py    |  54 ++--
 .../org/apache/airavata/model/job/JobModel.java | 142 +++++----
 .../airavata/model/process/ProcessModel.java    | 177 +++++------
 .../apache/airavata/model/task/TaskModel.java   | 302 ++++++++++++-------
 .../apache/airavata/gfac/core/GFacUtils.java    |   9 +-
 .../gfac/core/context/ProcessContext.java       |  10 +-
 .../airavata/gfac/core/context/TaskContext.java |  17 +-
 .../airavata/gfac/impl/GFacEngineImpl.java      |  25 +-
 .../airavata/gfac/impl/task/ArchiveTask.java    |   5 +-
 .../gfac/impl/task/BESJobSubmissionTask.java    |  10 +-
 .../airavata/gfac/impl/task/DataStageTask.java  |   8 +-
 .../impl/task/DefaultJobSubmissionTask.java     |  26 +-
 .../gfac/impl/task/EnvironmentSetupTask.java    |   3 +-
 .../gfac/impl/task/ForkJobSubmissionTask.java   |  13 +-
 .../gfac/impl/task/SCPDataStageTask.java        |  16 +-
 .../gfac/impl/task/utils/StreamData.java        |   8 +-
 .../gfac/monitor/email/EmailBasedMonitor.java   |   4 +-
 .../cpi/impl/SimpleOrchestratorImpl.java        |  12 +-
 .../core/entities/expcatalog/JobEntity.java     |  10 +-
 .../core/entities/expcatalog/ProcessEntity.java |  20 +-
 .../core/entities/expcatalog/TaskEntity.java    |  20 +-
 .../expcatalog/ExperimentRepository.java        |   8 +-
 .../catalog/impl/ExperimentRegistry.java        |  32 +-
 .../utils/ThriftDataModelConversion.java        |  16 +-
 .../service/handler/RegistryServerHandler.java  |   2 +-
 .../experiment-catalog-models/job_model.thrift  |   2 +-
 .../process_model.thrift                        |   4 +-
 .../experiment-catalog-models/task_model.thrift |   4 +-
 35 files changed, 864 insertions(+), 598 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.cpp
index 50bdd6d..b411913 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.cpp
@@ -56,7 +56,7 @@ void JobModel::__set_creationTime(const int64_t val) {
 __isset.creationTime = true;
 }
 
-void JobModel::__set_jobStatus(const  ::apache::airavata::model::status::JobStatus& val) {
+void JobModel::__set_jobStatus(const std::vector< ::apache::airavata::model::status::JobStatus> & val) {
   this->jobStatus = val;
 __isset.jobStatus = true;
 }
@@ -157,8 +157,20 @@ uint32_t JobModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         }
         break;
       case 6:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->jobStatus.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->jobStatus.clear();
+            uint32_t _size0;
+            ::apache::thrift::protocol::TType _etype3;
+            xfer += iprot->readListBegin(_etype3, _size0);
+            this->jobStatus.resize(_size0);
+            uint32_t _i4;
+            for (_i4 = 0; _i4 < _size0; ++_i4)
+            {
+              xfer += this->jobStatus[_i4].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.jobStatus = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -259,8 +271,16 @@ uint32_t JobModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.jobStatus) {
-    xfer += oprot->writeFieldBegin("jobStatus", ::apache::thrift::protocol::T_STRUCT, 6);
-    xfer += this->jobStatus.write(oprot);
+    xfer += oprot->writeFieldBegin("jobStatus", ::apache::thrift::protocol::T_LIST, 6);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->jobStatus.size()));
+      std::vector< ::apache::airavata::model::status::JobStatus> ::const_iterator _iter5;
+      for (_iter5 = this->jobStatus.begin(); _iter5 != this->jobStatus.end(); ++_iter5)
+      {
+        xfer += (*_iter5).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.computeResourceConsumed) {
@@ -315,35 +335,35 @@ void swap(JobModel &a, JobModel &b) {
   swap(a.__isset, b.__isset);
 }
 
-JobModel::JobModel(const JobModel& other0) {
-  jobId = other0.jobId;
-  taskId = other0.taskId;
-  processId = other0.processId;
-  jobDescription = other0.jobDescription;
-  creationTime = other0.creationTime;
-  jobStatus = other0.jobStatus;
-  computeResourceConsumed = other0.computeResourceConsumed;
-  jobName = other0.jobName;
-  workingDir = other0.workingDir;
-  stdOut = other0.stdOut;
-  stdErr = other0.stdErr;
-  exitCode = other0.exitCode;
-  __isset = other0.__isset;
+JobModel::JobModel(const JobModel& other6) {
+  jobId = other6.jobId;
+  taskId = other6.taskId;
+  processId = other6.processId;
+  jobDescription = other6.jobDescription;
+  creationTime = other6.creationTime;
+  jobStatus = other6.jobStatus;
+  computeResourceConsumed = other6.computeResourceConsumed;
+  jobName = other6.jobName;
+  workingDir = other6.workingDir;
+  stdOut = other6.stdOut;
+  stdErr = other6.stdErr;
+  exitCode = other6.exitCode;
+  __isset = other6.__isset;
 }
-JobModel& JobModel::operator=(const JobModel& other1) {
-  jobId = other1.jobId;
-  taskId = other1.taskId;
-  processId = other1.processId;
-  jobDescription = other1.jobDescription;
-  creationTime = other1.creationTime;
-  jobStatus = other1.jobStatus;
-  computeResourceConsumed = other1.computeResourceConsumed;
-  jobName = other1.jobName;
-  workingDir = other1.workingDir;
-  stdOut = other1.stdOut;
-  stdErr = other1.stdErr;
-  exitCode = other1.exitCode;
-  __isset = other1.__isset;
+JobModel& JobModel::operator=(const JobModel& other7) {
+  jobId = other7.jobId;
+  taskId = other7.taskId;
+  processId = other7.processId;
+  jobDescription = other7.jobDescription;
+  creationTime = other7.creationTime;
+  jobStatus = other7.jobStatus;
+  computeResourceConsumed = other7.computeResourceConsumed;
+  jobName = other7.jobName;
+  workingDir = other7.workingDir;
+  stdOut = other7.stdOut;
+  stdErr = other7.stdErr;
+  exitCode = other7.exitCode;
+  __isset = other7.__isset;
   return *this;
 }
 void JobModel::printTo(std::ostream& out) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.h
index 6b98e32..00ba9fe 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.h
@@ -65,7 +65,7 @@ class JobModel {
   std::string processId;
   std::string jobDescription;
   int64_t creationTime;
-   ::apache::airavata::model::status::JobStatus jobStatus;
+  std::vector< ::apache::airavata::model::status::JobStatus>  jobStatus;
   std::string computeResourceConsumed;
   std::string jobName;
   std::string workingDir;
@@ -85,7 +85,7 @@ class JobModel {
 
   void __set_creationTime(const int64_t val);
 
-  void __set_jobStatus(const  ::apache::airavata::model::status::JobStatus& val);
+  void __set_jobStatus(const std::vector< ::apache::airavata::model::status::JobStatus> & val);
 
   void __set_computeResourceConsumed(const std::string& val);
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
index f208387..e73eca8 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
@@ -85,7 +85,7 @@ void TaskModel::__set_lastUpdateTime(const int64_t val) {
   this->lastUpdateTime = val;
 }
 
-void TaskModel::__set_taskStatus(const  ::apache::airavata::model::status::TaskStatus& val) {
+void TaskModel::__set_taskStatus(const std::vector< ::apache::airavata::model::status::TaskStatus> & val) {
   this->taskStatus = val;
 }
 
@@ -99,7 +99,7 @@ void TaskModel::__set_subTaskModel(const std::string& val) {
 __isset.subTaskModel = true;
 }
 
-void TaskModel::__set_taskError(const  ::apache::airavata::model::commons::ErrorModel& val) {
+void TaskModel::__set_taskError(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val) {
   this->taskError = val;
 __isset.taskError = true;
 }
@@ -179,8 +179,20 @@ uint32_t TaskModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         }
         break;
       case 6:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->taskStatus.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->taskStatus.clear();
+            uint32_t _size1;
+            ::apache::thrift::protocol::TType _etype4;
+            xfer += iprot->readListBegin(_etype4, _size1);
+            this->taskStatus.resize(_size1);
+            uint32_t _i5;
+            for (_i5 = 0; _i5 < _size1; ++_i5)
+            {
+              xfer += this->taskStatus[_i5].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           isset_taskStatus = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -203,8 +215,20 @@ uint32_t TaskModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         }
         break;
       case 9:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->taskError.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->taskError.clear();
+            uint32_t _size6;
+            ::apache::thrift::protocol::TType _etype9;
+            xfer += iprot->readListBegin(_etype9, _size6);
+            this->taskError.resize(_size6);
+            uint32_t _i10;
+            for (_i10 = 0; _i10 < _size6; ++_i10)
+            {
+              xfer += this->taskError[_i10].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.taskError = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -214,14 +238,14 @@ uint32_t TaskModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->jobs.clear();
-            uint32_t _size1;
-            ::apache::thrift::protocol::TType _etype4;
-            xfer += iprot->readListBegin(_etype4, _size1);
-            this->jobs.resize(_size1);
-            uint32_t _i5;
-            for (_i5 = 0; _i5 < _size1; ++_i5)
+            uint32_t _size11;
+            ::apache::thrift::protocol::TType _etype14;
+            xfer += iprot->readListBegin(_etype14, _size11);
+            this->jobs.resize(_size11);
+            uint32_t _i15;
+            for (_i15 = 0; _i15 < _size11; ++_i15)
             {
-              xfer += this->jobs[_i5].read(iprot);
+              xfer += this->jobs[_i15].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -279,8 +303,16 @@ uint32_t TaskModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
   xfer += oprot->writeI64(this->lastUpdateTime);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("taskStatus", ::apache::thrift::protocol::T_STRUCT, 6);
-  xfer += this->taskStatus.write(oprot);
+  xfer += oprot->writeFieldBegin("taskStatus", ::apache::thrift::protocol::T_LIST, 6);
+  {
+    xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->taskStatus.size()));
+    std::vector< ::apache::airavata::model::status::TaskStatus> ::const_iterator _iter16;
+    for (_iter16 = this->taskStatus.begin(); _iter16 != this->taskStatus.end(); ++_iter16)
+    {
+      xfer += (*_iter16).write(oprot);
+    }
+    xfer += oprot->writeListEnd();
+  }
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.taskDetail) {
@@ -294,18 +326,26 @@ uint32_t TaskModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.taskError) {
-    xfer += oprot->writeFieldBegin("taskError", ::apache::thrift::protocol::T_STRUCT, 9);
-    xfer += this->taskError.write(oprot);
+    xfer += oprot->writeFieldBegin("taskError", ::apache::thrift::protocol::T_LIST, 9);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->taskError.size()));
+      std::vector< ::apache::airavata::model::commons::ErrorModel> ::const_iterator _iter17;
+      for (_iter17 = this->taskError.begin(); _iter17 != this->taskError.end(); ++_iter17)
+      {
+        xfer += (*_iter17).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.jobs) {
     xfer += oprot->writeFieldBegin("jobs", ::apache::thrift::protocol::T_LIST, 10);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->jobs.size()));
-      std::vector< ::apache::airavata::model::job::JobModel> ::const_iterator _iter6;
-      for (_iter6 = this->jobs.begin(); _iter6 != this->jobs.end(); ++_iter6)
+      std::vector< ::apache::airavata::model::job::JobModel> ::const_iterator _iter18;
+      for (_iter18 = this->jobs.begin(); _iter18 != this->jobs.end(); ++_iter18)
       {
-        xfer += (*_iter6).write(oprot);
+        xfer += (*_iter18).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -331,31 +371,31 @@ void swap(TaskModel &a, TaskModel &b) {
   swap(a.__isset, b.__isset);
 }
 
-TaskModel::TaskModel(const TaskModel& other7) {
-  taskId = other7.taskId;
-  taskType = other7.taskType;
-  parentProcessId = other7.parentProcessId;
-  creationTime = other7.creationTime;
-  lastUpdateTime = other7.lastUpdateTime;
-  taskStatus = other7.taskStatus;
-  taskDetail = other7.taskDetail;
-  subTaskModel = other7.subTaskModel;
-  taskError = other7.taskError;
-  jobs = other7.jobs;
-  __isset = other7.__isset;
-}
-TaskModel& TaskModel::operator=(const TaskModel& other8) {
-  taskId = other8.taskId;
-  taskType = other8.taskType;
-  parentProcessId = other8.parentProcessId;
-  creationTime = other8.creationTime;
-  lastUpdateTime = other8.lastUpdateTime;
-  taskStatus = other8.taskStatus;
-  taskDetail = other8.taskDetail;
-  subTaskModel = other8.subTaskModel;
-  taskError = other8.taskError;
-  jobs = other8.jobs;
-  __isset = other8.__isset;
+TaskModel::TaskModel(const TaskModel& other19) {
+  taskId = other19.taskId;
+  taskType = other19.taskType;
+  parentProcessId = other19.parentProcessId;
+  creationTime = other19.creationTime;
+  lastUpdateTime = other19.lastUpdateTime;
+  taskStatus = other19.taskStatus;
+  taskDetail = other19.taskDetail;
+  subTaskModel = other19.subTaskModel;
+  taskError = other19.taskError;
+  jobs = other19.jobs;
+  __isset = other19.__isset;
+}
+TaskModel& TaskModel::operator=(const TaskModel& other20) {
+  taskId = other20.taskId;
+  taskType = other20.taskType;
+  parentProcessId = other20.parentProcessId;
+  creationTime = other20.creationTime;
+  lastUpdateTime = other20.lastUpdateTime;
+  taskStatus = other20.taskStatus;
+  taskDetail = other20.taskDetail;
+  subTaskModel = other20.subTaskModel;
+  taskError = other20.taskError;
+  jobs = other20.jobs;
+  __isset = other20.__isset;
   return *this;
 }
 void TaskModel::printTo(std::ostream& out) const {
@@ -458,9 +498,9 @@ uint32_t DataStagingTaskModel::read(::apache::thrift::protocol::TProtocol* iprot
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast9;
-          xfer += iprot->readI32(ecast9);
-          this->type = (DataStageType::type)ecast9;
+          int32_t ecast21;
+          xfer += iprot->readI32(ecast21);
+          this->type = (DataStageType::type)ecast21;
           isset_type = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -584,27 +624,27 @@ void swap(DataStagingTaskModel &a, DataStagingTaskModel &b) {
   swap(a.__isset, b.__isset);
 }
 
-DataStagingTaskModel::DataStagingTaskModel(const DataStagingTaskModel& other10) {
-  source = other10.source;
-  destination = other10.destination;
-  type = other10.type;
-  transferStartTime = other10.transferStartTime;
-  transferEndTime = other10.transferEndTime;
-  transferRate = other10.transferRate;
-  processInput = other10.processInput;
-  processOutput = other10.processOutput;
-  __isset = other10.__isset;
-}
-DataStagingTaskModel& DataStagingTaskModel::operator=(const DataStagingTaskModel& other11) {
-  source = other11.source;
-  destination = other11.destination;
-  type = other11.type;
-  transferStartTime = other11.transferStartTime;
-  transferEndTime = other11.transferEndTime;
-  transferRate = other11.transferRate;
-  processInput = other11.processInput;
-  processOutput = other11.processOutput;
-  __isset = other11.__isset;
+DataStagingTaskModel::DataStagingTaskModel(const DataStagingTaskModel& other22) {
+  source = other22.source;
+  destination = other22.destination;
+  type = other22.type;
+  transferStartTime = other22.transferStartTime;
+  transferEndTime = other22.transferEndTime;
+  transferRate = other22.transferRate;
+  processInput = other22.processInput;
+  processOutput = other22.processOutput;
+  __isset = other22.__isset;
+}
+DataStagingTaskModel& DataStagingTaskModel::operator=(const DataStagingTaskModel& other23) {
+  source = other23.source;
+  destination = other23.destination;
+  type = other23.type;
+  transferStartTime = other23.transferStartTime;
+  transferEndTime = other23.transferEndTime;
+  transferRate = other23.transferRate;
+  processInput = other23.processInput;
+  processOutput = other23.processOutput;
+  __isset = other23.__isset;
   return *this;
 }
 void DataStagingTaskModel::printTo(std::ostream& out) const {
@@ -667,9 +707,9 @@ uint32_t EnvironmentSetupTaskModel::read(::apache::thrift::protocol::TProtocol*
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast12;
-          xfer += iprot->readI32(ecast12);
-          this->protocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast12;
+          int32_t ecast24;
+          xfer += iprot->readI32(ecast24);
+          this->protocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast24;
           isset_protocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -715,13 +755,13 @@ void swap(EnvironmentSetupTaskModel &a, EnvironmentSetupTaskModel &b) {
   swap(a.protocol, b.protocol);
 }
 
-EnvironmentSetupTaskModel::EnvironmentSetupTaskModel(const EnvironmentSetupTaskModel& other13) {
-  location = other13.location;
-  protocol = other13.protocol;
+EnvironmentSetupTaskModel::EnvironmentSetupTaskModel(const EnvironmentSetupTaskModel& other25) {
+  location = other25.location;
+  protocol = other25.protocol;
 }
-EnvironmentSetupTaskModel& EnvironmentSetupTaskModel::operator=(const EnvironmentSetupTaskModel& other14) {
-  location = other14.location;
-  protocol = other14.protocol;
+EnvironmentSetupTaskModel& EnvironmentSetupTaskModel::operator=(const EnvironmentSetupTaskModel& other26) {
+  location = other26.location;
+  protocol = other26.protocol;
   return *this;
 }
 void EnvironmentSetupTaskModel::printTo(std::ostream& out) const {
@@ -775,9 +815,9 @@ uint32_t JobSubmissionTaskModel::read(::apache::thrift::protocol::TProtocol* ipr
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast15;
-          xfer += iprot->readI32(ecast15);
-          this->jobSubmissionProtocol = ( ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type)ecast15;
+          int32_t ecast27;
+          xfer += iprot->readI32(ecast27);
+          this->jobSubmissionProtocol = ( ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type)ecast27;
           isset_jobSubmissionProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -785,9 +825,9 @@ uint32_t JobSubmissionTaskModel::read(::apache::thrift::protocol::TProtocol* ipr
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast16;
-          xfer += iprot->readI32(ecast16);
-          this->monitorMode = ( ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type)ecast16;
+          int32_t ecast28;
+          xfer += iprot->readI32(ecast28);
+          this->monitorMode = ( ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type)ecast28;
           isset_monitorMode = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -848,17 +888,17 @@ void swap(JobSubmissionTaskModel &a, JobSubmissionTaskModel &b) {
   swap(a.__isset, b.__isset);
 }
 
-JobSubmissionTaskModel::JobSubmissionTaskModel(const JobSubmissionTaskModel& other17) {
-  jobSubmissionProtocol = other17.jobSubmissionProtocol;
-  monitorMode = other17.monitorMode;
-  wallTime = other17.wallTime;
-  __isset = other17.__isset;
+JobSubmissionTaskModel::JobSubmissionTaskModel(const JobSubmissionTaskModel& other29) {
+  jobSubmissionProtocol = other29.jobSubmissionProtocol;
+  monitorMode = other29.monitorMode;
+  wallTime = other29.wallTime;
+  __isset = other29.__isset;
 }
-JobSubmissionTaskModel& JobSubmissionTaskModel::operator=(const JobSubmissionTaskModel& other18) {
-  jobSubmissionProtocol = other18.jobSubmissionProtocol;
-  monitorMode = other18.monitorMode;
-  wallTime = other18.wallTime;
-  __isset = other18.__isset;
+JobSubmissionTaskModel& JobSubmissionTaskModel::operator=(const JobSubmissionTaskModel& other30) {
+  jobSubmissionProtocol = other30.jobSubmissionProtocol;
+  monitorMode = other30.monitorMode;
+  wallTime = other30.wallTime;
+  __isset = other30.__isset;
   return *this;
 }
 void JobSubmissionTaskModel::printTo(std::ostream& out) const {
@@ -903,9 +943,9 @@ uint32_t MonitorTaskModel::read(::apache::thrift::protocol::TProtocol* iprot) {
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast19;
-          xfer += iprot->readI32(ecast19);
-          this->monitorMode = ( ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type)ecast19;
+          int32_t ecast31;
+          xfer += iprot->readI32(ecast31);
+          this->monitorMode = ( ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type)ecast31;
           isset_monitorMode = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -944,11 +984,11 @@ void swap(MonitorTaskModel &a, MonitorTaskModel &b) {
   swap(a.monitorMode, b.monitorMode);
 }
 
-MonitorTaskModel::MonitorTaskModel(const MonitorTaskModel& other20) {
-  monitorMode = other20.monitorMode;
+MonitorTaskModel::MonitorTaskModel(const MonitorTaskModel& other32) {
+  monitorMode = other32.monitorMode;
 }
-MonitorTaskModel& MonitorTaskModel::operator=(const MonitorTaskModel& other21) {
-  monitorMode = other21.monitorMode;
+MonitorTaskModel& MonitorTaskModel::operator=(const MonitorTaskModel& other33) {
+  monitorMode = other33.monitorMode;
   return *this;
 }
 void MonitorTaskModel::printTo(std::ostream& out) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
index 8f18441..8a98904 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
@@ -97,10 +97,10 @@ class TaskModel {
   std::string parentProcessId;
   int64_t creationTime;
   int64_t lastUpdateTime;
-   ::apache::airavata::model::status::TaskStatus taskStatus;
+  std::vector< ::apache::airavata::model::status::TaskStatus>  taskStatus;
   std::string taskDetail;
   std::string subTaskModel;
-   ::apache::airavata::model::commons::ErrorModel taskError;
+  std::vector< ::apache::airavata::model::commons::ErrorModel>  taskError;
   std::vector< ::apache::airavata::model::job::JobModel>  jobs;
 
   _TaskModel__isset __isset;
@@ -115,13 +115,13 @@ class TaskModel {
 
   void __set_lastUpdateTime(const int64_t val);
 
-  void __set_taskStatus(const  ::apache::airavata::model::status::TaskStatus& val);
+  void __set_taskStatus(const std::vector< ::apache::airavata::model::status::TaskStatus> & val);
 
   void __set_taskDetail(const std::string& val);
 
   void __set_subTaskModel(const std::string& val);
 
-  void __set_taskError(const  ::apache::airavata::model::commons::ErrorModel& val);
+  void __set_taskError(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val);
 
   void __set_jobs(const std::vector< ::apache::airavata::model::job::JobModel> & val);
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
index 2997652..b655020 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
@@ -89,7 +89,7 @@ class TaskModel {
    */
   public $lastUpdateTime = null;
   /**
-   * @var \Airavata\Model\Status\TaskStatus
+   * @var \Airavata\Model\Status\TaskStatus[]
    */
   public $taskStatus = null;
   /**
@@ -101,7 +101,7 @@ class TaskModel {
    */
   public $subTaskModel = null;
   /**
-   * @var \Airavata\Model\Commons\ErrorModel
+   * @var \Airavata\Model\Commons\ErrorModel[]
    */
   public $taskError = null;
   /**
@@ -134,8 +134,12 @@ class TaskModel {
           ),
         6 => array(
           'var' => 'taskStatus',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Status\TaskStatus',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Status\TaskStatus',
+            ),
           ),
         7 => array(
           'var' => 'taskDetail',
@@ -147,8 +151,12 @@ class TaskModel {
           ),
         9 => array(
           'var' => 'taskError',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Commons\ErrorModel',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Commons\ErrorModel',
+            ),
           ),
         10 => array(
           'var' => 'jobs',
@@ -250,9 +258,19 @@ class TaskModel {
           }
           break;
         case 6:
-          if ($ftype == TType::STRUCT) {
-            $this->taskStatus = new \Airavata\Model\Status\TaskStatus();
-            $xfer += $this->taskStatus->read($input);
+          if ($ftype == TType::LST) {
+            $this->taskStatus = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $elem5 = new \Airavata\Model\Status\TaskStatus();
+              $xfer += $elem5->read($input);
+              $this->taskStatus []= $elem5;
+            }
+            $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -272,9 +290,19 @@ class TaskModel {
           }
           break;
         case 9:
-          if ($ftype == TType::STRUCT) {
-            $this->taskError = new \Airavata\Model\Commons\ErrorModel();
-            $xfer += $this->taskError->read($input);
+          if ($ftype == TType::LST) {
+            $this->taskError = array();
+            $_size6 = 0;
+            $_etype9 = 0;
+            $xfer += $input->readListBegin($_etype9, $_size6);
+            for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
+            {
+              $elem11 = null;
+              $elem11 = new \Airavata\Model\Commons\ErrorModel();
+              $xfer += $elem11->read($input);
+              $this->taskError []= $elem11;
+            }
+            $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -282,15 +310,15 @@ class TaskModel {
         case 10:
           if ($ftype == TType::LST) {
             $this->jobs = array();
-            $_size0 = 0;
-            $_etype3 = 0;
-            $xfer += $input->readListBegin($_etype3, $_size0);
-            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            $_size12 = 0;
+            $_etype15 = 0;
+            $xfer += $input->readListBegin($_etype15, $_size12);
+            for ($_i16 = 0; $_i16 < $_size12; ++$_i16)
             {
-              $elem5 = null;
-              $elem5 = new \Airavata\Model\Job\JobModel();
-              $xfer += $elem5->read($input);
-              $this->jobs []= $elem5;
+              $elem17 = null;
+              $elem17 = new \Airavata\Model\Job\JobModel();
+              $xfer += $elem17->read($input);
+              $this->jobs []= $elem17;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -336,11 +364,20 @@ class TaskModel {
       $xfer += $output->writeFieldEnd();
     }
     if ($this->taskStatus !== null) {
-      if (!is_object($this->taskStatus)) {
+      if (!is_array($this->taskStatus)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('taskStatus', TType::STRUCT, 6);
-      $xfer += $this->taskStatus->write($output);
+      $xfer += $output->writeFieldBegin('taskStatus', TType::LST, 6);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->taskStatus));
+        {
+          foreach ($this->taskStatus as $iter18)
+          {
+            $xfer += $iter18->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     if ($this->taskDetail !== null) {
@@ -354,11 +391,20 @@ class TaskModel {
       $xfer += $output->writeFieldEnd();
     }
     if ($this->taskError !== null) {
-      if (!is_object($this->taskError)) {
+      if (!is_array($this->taskError)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('taskError', TType::STRUCT, 9);
-      $xfer += $this->taskError->write($output);
+      $xfer += $output->writeFieldBegin('taskError', TType::LST, 9);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->taskError));
+        {
+          foreach ($this->taskError as $iter19)
+          {
+            $xfer += $iter19->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     if ($this->jobs !== null) {
@@ -369,9 +415,9 @@ class TaskModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->jobs));
         {
-          foreach ($this->jobs as $iter6)
+          foreach ($this->jobs as $iter20)
           {
-            $xfer += $iter6->write($output);
+            $xfer += $iter20->write($output);
           }
         }
         $output->writeListEnd();

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/job/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/job/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/job/Types.php
index 22453c1..8f50b70 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/job/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/job/Types.php
@@ -41,7 +41,7 @@ class JobModel {
    */
   public $creationTime = null;
   /**
-   * @var \Airavata\Model\Status\JobStatus
+   * @var \Airavata\Model\Status\JobStatus[]
    */
   public $jobStatus = null;
   /**
@@ -94,8 +94,12 @@ class JobModel {
           ),
         6 => array(
           'var' => 'jobStatus',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Status\JobStatus',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Status\JobStatus',
+            ),
           ),
         7 => array(
           'var' => 'computeResourceConsumed',
@@ -218,9 +222,19 @@ class JobModel {
           }
           break;
         case 6:
-          if ($ftype == TType::STRUCT) {
-            $this->jobStatus = new \Airavata\Model\Status\JobStatus();
-            $xfer += $this->jobStatus->read($input);
+          if ($ftype == TType::LST) {
+            $this->jobStatus = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $elem5 = new \Airavata\Model\Status\JobStatus();
+              $xfer += $elem5->read($input);
+              $this->jobStatus []= $elem5;
+            }
+            $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -306,11 +320,20 @@ class JobModel {
       $xfer += $output->writeFieldEnd();
     }
     if ($this->jobStatus !== null) {
-      if (!is_object($this->jobStatus)) {
+      if (!is_array($this->jobStatus)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('jobStatus', TType::STRUCT, 6);
-      $xfer += $this->jobStatus->write($output);
+      $xfer += $output->writeFieldBegin('jobStatus', TType::LST, 6);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->jobStatus));
+        {
+          foreach ($this->jobStatus as $iter6)
+          {
+            $xfer += $iter6->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     if ($this->computeResourceConsumed !== null) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/job/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/job/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/job/ttypes.py
index 8c8f881..111d241 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/job/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/job/ttypes.py
@@ -43,7 +43,7 @@ class JobModel:
     (3, TType.STRING, 'processId', None, None, ), # 3
     (4, TType.STRING, 'jobDescription', None, None, ), # 4
     (5, TType.I64, 'creationTime', None, None, ), # 5
-    (6, TType.STRUCT, 'jobStatus', (apache.airavata.model.status.ttypes.JobStatus, apache.airavata.model.status.ttypes.JobStatus.thrift_spec), None, ), # 6
+    (6, TType.LIST, 'jobStatus', (TType.STRUCT,(apache.airavata.model.status.ttypes.JobStatus, apache.airavata.model.status.ttypes.JobStatus.thrift_spec)), None, ), # 6
     (7, TType.STRING, 'computeResourceConsumed', None, None, ), # 7
     (8, TType.STRING, 'jobName', None, None, ), # 8
     (9, TType.STRING, 'workingDir', None, None, ), # 9
@@ -101,9 +101,14 @@ class JobModel:
         else:
           iprot.skip(ftype)
       elif fid == 6:
-        if ftype == TType.STRUCT:
-          self.jobStatus = apache.airavata.model.status.ttypes.JobStatus()
-          self.jobStatus.read(iprot)
+        if ftype == TType.LIST:
+          self.jobStatus = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = apache.airavata.model.status.ttypes.JobStatus()
+            _elem5.read(iprot)
+            self.jobStatus.append(_elem5)
+          iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 7:
@@ -167,8 +172,11 @@ class JobModel:
       oprot.writeI64(self.creationTime)
       oprot.writeFieldEnd()
     if self.jobStatus is not None:
-      oprot.writeFieldBegin('jobStatus', TType.STRUCT, 6)
-      self.jobStatus.write(oprot)
+      oprot.writeFieldBegin('jobStatus', TType.LIST, 6)
+      oprot.writeListBegin(TType.STRUCT, len(self.jobStatus))
+      for iter6 in self.jobStatus:
+        iter6.write(oprot)
+      oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.computeResourceConsumed is not None:
       oprot.writeFieldBegin('computeResourceConsumed', TType.STRING, 7)

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
index ff6d729..9699f7b 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
@@ -108,10 +108,10 @@ class TaskModel:
     (3, TType.STRING, 'parentProcessId', None, None, ), # 3
     (4, TType.I64, 'creationTime', None, None, ), # 4
     (5, TType.I64, 'lastUpdateTime', None, None, ), # 5
-    (6, TType.STRUCT, 'taskStatus', (apache.airavata.model.status.ttypes.TaskStatus, apache.airavata.model.status.ttypes.TaskStatus.thrift_spec), None, ), # 6
+    (6, TType.LIST, 'taskStatus', (TType.STRUCT,(apache.airavata.model.status.ttypes.TaskStatus, apache.airavata.model.status.ttypes.TaskStatus.thrift_spec)), None, ), # 6
     (7, TType.STRING, 'taskDetail', None, None, ), # 7
     (8, TType.STRING, 'subTaskModel', None, None, ), # 8
-    (9, TType.STRUCT, 'taskError', (apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec), None, ), # 9
+    (9, TType.LIST, 'taskError', (TType.STRUCT,(apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec)), None, ), # 9
     (10, TType.LIST, 'jobs', (TType.STRUCT,(apache.airavata.model.job.ttypes.JobModel, apache.airavata.model.job.ttypes.JobModel.thrift_spec)), None, ), # 10
   )
 
@@ -162,9 +162,14 @@ class TaskModel:
         else:
           iprot.skip(ftype)
       elif fid == 6:
-        if ftype == TType.STRUCT:
-          self.taskStatus = apache.airavata.model.status.ttypes.TaskStatus()
-          self.taskStatus.read(iprot)
+        if ftype == TType.LIST:
+          self.taskStatus = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = apache.airavata.model.status.ttypes.TaskStatus()
+            _elem5.read(iprot)
+            self.taskStatus.append(_elem5)
+          iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 7:
@@ -178,19 +183,24 @@ class TaskModel:
         else:
           iprot.skip(ftype)
       elif fid == 9:
-        if ftype == TType.STRUCT:
-          self.taskError = apache.airavata.model.commons.ttypes.ErrorModel()
-          self.taskError.read(iprot)
+        if ftype == TType.LIST:
+          self.taskError = []
+          (_etype9, _size6) = iprot.readListBegin()
+          for _i10 in xrange(_size6):
+            _elem11 = apache.airavata.model.commons.ttypes.ErrorModel()
+            _elem11.read(iprot)
+            self.taskError.append(_elem11)
+          iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 10:
         if ftype == TType.LIST:
           self.jobs = []
-          (_etype3, _size0) = iprot.readListBegin()
-          for _i4 in xrange(_size0):
-            _elem5 = apache.airavata.model.job.ttypes.JobModel()
-            _elem5.read(iprot)
-            self.jobs.append(_elem5)
+          (_etype15, _size12) = iprot.readListBegin()
+          for _i16 in xrange(_size12):
+            _elem17 = apache.airavata.model.job.ttypes.JobModel()
+            _elem17.read(iprot)
+            self.jobs.append(_elem17)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -225,8 +235,11 @@ class TaskModel:
       oprot.writeI64(self.lastUpdateTime)
       oprot.writeFieldEnd()
     if self.taskStatus is not None:
-      oprot.writeFieldBegin('taskStatus', TType.STRUCT, 6)
-      self.taskStatus.write(oprot)
+      oprot.writeFieldBegin('taskStatus', TType.LIST, 6)
+      oprot.writeListBegin(TType.STRUCT, len(self.taskStatus))
+      for iter18 in self.taskStatus:
+        iter18.write(oprot)
+      oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.taskDetail is not None:
       oprot.writeFieldBegin('taskDetail', TType.STRING, 7)
@@ -237,14 +250,17 @@ class TaskModel:
       oprot.writeString(self.subTaskModel)
       oprot.writeFieldEnd()
     if self.taskError is not None:
-      oprot.writeFieldBegin('taskError', TType.STRUCT, 9)
-      self.taskError.write(oprot)
+      oprot.writeFieldBegin('taskError', TType.LIST, 9)
+      oprot.writeListBegin(TType.STRUCT, len(self.taskError))
+      for iter19 in self.taskError:
+        iter19.write(oprot)
+      oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.jobs is not None:
       oprot.writeFieldBegin('jobs', TType.LIST, 10)
       oprot.writeListBegin(TType.STRUCT, len(self.jobs))
-      for iter6 in self.jobs:
-        iter6.write(oprot)
+      for iter20 in self.jobs:
+        iter20.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     oprot.writeFieldStop()

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
index f624be9..d14c50e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
@@ -23,32 +23,15 @@
  */
 package org.apache.airavata.model.job;
 
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-
 import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
+
 import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.*;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 @Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
@@ -60,7 +43,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
   private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)3);
   private static final org.apache.thrift.protocol.TField JOB_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("jobDescription", org.apache.thrift.protocol.TType.STRING, (short)4);
   private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)5);
-  private static final org.apache.thrift.protocol.TField JOB_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobStatus", org.apache.thrift.protocol.TType.STRUCT, (short)6);
+  private static final org.apache.thrift.protocol.TField JOB_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobStatuses", org.apache.thrift.protocol.TType.LIST, (short)6);
   private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_CONSUMED_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceConsumed", org.apache.thrift.protocol.TType.STRING, (short)7);
   private static final org.apache.thrift.protocol.TField JOB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("jobName", org.apache.thrift.protocol.TType.STRING, (short)8);
   private static final org.apache.thrift.protocol.TField WORKING_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("workingDir", org.apache.thrift.protocol.TType.STRING, (short)9);
@@ -79,7 +62,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
   private String processId; // required
   private String jobDescription; // required
   private long creationTime; // optional
-  private org.apache.airavata.model.status.JobStatus jobStatus; // optional
+  private List<org.apache.airavata.model.status.JobStatus> jobStatuses; // optional
   private String computeResourceConsumed; // optional
   private String jobName; // optional
   private String workingDir; // optional
@@ -94,7 +77,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     PROCESS_ID((short)3, "processId"),
     JOB_DESCRIPTION((short)4, "jobDescription"),
     CREATION_TIME((short)5, "creationTime"),
-    JOB_STATUS((short)6, "jobStatus"),
+    JOB_STATUS((short)6, "jobStatuses"),
     COMPUTE_RESOURCE_CONSUMED((short)7, "computeResourceConsumed"),
     JOB_NAME((short)8, "jobName"),
     WORKING_DIR((short)9, "workingDir"),
@@ -196,8 +179,9 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.JOB_STATUS, new org.apache.thrift.meta_data.FieldMetaData("jobStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.JobStatus.class)));
+    tmpMap.put(_Fields.JOB_STATUS, new org.apache.thrift.meta_data.FieldMetaData("jobStatuses", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.JobStatus.class))));
     tmpMap.put(_Fields.COMPUTE_RESOURCE_CONSUMED, new org.apache.thrift.meta_data.FieldMetaData("computeResourceConsumed", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.JOB_NAME, new org.apache.thrift.meta_data.FieldMetaData("jobName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -249,7 +233,11 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     }
     this.creationTime = other.creationTime;
     if (other.isSetJobStatus()) {
-      this.jobStatus = new org.apache.airavata.model.status.JobStatus(other.jobStatus);
+      List<org.apache.airavata.model.status.JobStatus> __this__jobStatus = new ArrayList<org.apache.airavata.model.status.JobStatus>(other.jobStatuses.size());
+      for (org.apache.airavata.model.status.JobStatus other_element : other.jobStatuses) {
+        __this__jobStatus.add(new org.apache.airavata.model.status.JobStatus(other_element));
+      }
+      this.jobStatuses = __this__jobStatus;
     }
     if (other.isSetComputeResourceConsumed()) {
       this.computeResourceConsumed = other.computeResourceConsumed;
@@ -281,7 +269,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     this.jobDescription = null;
     setCreationTimeIsSet(false);
     this.creationTime = 0;
-    this.jobStatus = null;
+    this.jobStatuses = null;
     this.computeResourceConsumed = null;
     this.jobName = null;
     this.workingDir = null;
@@ -405,26 +393,41 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
   }
 
-  public org.apache.airavata.model.status.JobStatus getJobStatus() {
-    return this.jobStatus;
+  public int getJobStatusSize() {
+    return (this.jobStatuses == null) ? 0 : this.jobStatuses.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.status.JobStatus> getJobStatusIterator() {
+    return (this.jobStatuses == null) ? null : this.jobStatuses.iterator();
   }
 
-  public void setJobStatus(org.apache.airavata.model.status.JobStatus jobStatus) {
-    this.jobStatus = jobStatus;
+  public void addToJobStatus(org.apache.airavata.model.status.JobStatus elem) {
+    if (this.jobStatuses == null) {
+      this.jobStatuses = new ArrayList<org.apache.airavata.model.status.JobStatus>();
+    }
+    this.jobStatuses.add(elem);
+  }
+
+  public List<org.apache.airavata.model.status.JobStatus> getJobStatuses() {
+    return this.jobStatuses;
+  }
+
+  public void setJobStatuses(List<org.apache.airavata.model.status.JobStatus> jobStatuses) {
+    this.jobStatuses = jobStatuses;
   }
 
   public void unsetJobStatus() {
-    this.jobStatus = null;
+    this.jobStatuses = null;
   }
 
-  /** Returns true if field jobStatus is set (has been assigned a value) and false otherwise */
+  /** Returns true if field jobStatuses is set (has been assigned a value) and false otherwise */
   public boolean isSetJobStatus() {
-    return this.jobStatus != null;
+    return this.jobStatuses != null;
   }
 
   public void setJobStatusIsSet(boolean value) {
     if (!value) {
-      this.jobStatus = null;
+      this.jobStatuses = null;
     }
   }
 
@@ -611,7 +614,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
       if (value == null) {
         unsetJobStatus();
       } else {
-        setJobStatus((org.apache.airavata.model.status.JobStatus)value);
+        setJobStatuses((List<org.apache.airavata.model.status.JobStatus>) value);
       }
       break;
 
@@ -684,7 +687,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
       return getCreationTime();
 
     case JOB_STATUS:
-      return getJobStatus();
+      return getJobStatuses();
 
     case COMPUTE_RESOURCE_CONSUMED:
       return getComputeResourceConsumed();
@@ -806,7 +809,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     if (this_present_jobStatus || that_present_jobStatus) {
       if (!(this_present_jobStatus && that_present_jobStatus))
         return false;
-      if (!this.jobStatus.equals(that.jobStatus))
+      if (!this.jobStatuses.equals(that.jobStatuses))
         return false;
     }
 
@@ -899,7 +902,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     boolean present_jobStatus = true && (isSetJobStatus());
     list.add(present_jobStatus);
     if (present_jobStatus)
-      list.add(jobStatus);
+      list.add(jobStatuses);
 
     boolean present_computeResourceConsumed = true && (isSetComputeResourceConsumed());
     list.add(present_computeResourceConsumed);
@@ -997,7 +1000,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
       return lastComparison;
     }
     if (isSetJobStatus()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobStatus, other.jobStatus);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobStatuses, other.jobStatuses);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -1121,11 +1124,11 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     }
     if (isSetJobStatus()) {
       if (!first) sb.append(", ");
-      sb.append("jobStatus:");
-      if (this.jobStatus == null) {
+      sb.append("jobStatuses:");
+      if (this.jobStatuses == null) {
         sb.append("null");
       } else {
-        sb.append(this.jobStatus);
+        sb.append(this.jobStatuses);
       }
       first = false;
     }
@@ -1208,9 +1211,6 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     }
 
     // check for sub-struct validity
-    if (jobStatus != null) {
-      jobStatus.validate();
-    }
   }
 
   private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -1290,9 +1290,19 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
             }
             break;
           case 6: // JOB_STATUS
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-              struct.jobStatus = new org.apache.airavata.model.status.JobStatus();
-              struct.jobStatus.read(iprot);
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.jobStatuses = new ArrayList<org.apache.airavata.model.status.JobStatus>(_list0.size);
+                org.apache.airavata.model.status.JobStatus _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new org.apache.airavata.model.status.JobStatus();
+                  _elem1.read(iprot);
+                  struct.jobStatuses.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
               struct.setJobStatusIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -1384,10 +1394,17 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
         oprot.writeI64(struct.creationTime);
         oprot.writeFieldEnd();
       }
-      if (struct.jobStatus != null) {
+      if (struct.jobStatuses != null) {
         if (struct.isSetJobStatus()) {
           oprot.writeFieldBegin(JOB_STATUS_FIELD_DESC);
-          struct.jobStatus.write(oprot);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.jobStatuses.size()));
+            for (org.apache.airavata.model.status.JobStatus _iter3 : struct.jobStatuses)
+            {
+              _iter3.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
       }
@@ -1482,7 +1499,13 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
         oprot.writeI64(struct.creationTime);
       }
       if (struct.isSetJobStatus()) {
-        struct.jobStatus.write(oprot);
+        {
+          oprot.writeI32(struct.jobStatuses.size());
+          for (org.apache.airavata.model.status.JobStatus _iter4 : struct.jobStatuses)
+          {
+            _iter4.write(oprot);
+          }
+        }
       }
       if (struct.isSetComputeResourceConsumed()) {
         oprot.writeString(struct.computeResourceConsumed);
@@ -1521,8 +1544,17 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
         struct.setCreationTimeIsSet(true);
       }
       if (incoming.get(1)) {
-        struct.jobStatus = new org.apache.airavata.model.status.JobStatus();
-        struct.jobStatus.read(iprot);
+        {
+          org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.jobStatuses = new ArrayList<org.apache.airavata.model.status.JobStatus>(_list5.size);
+          org.apache.airavata.model.status.JobStatus _elem6;
+          for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+          {
+            _elem6 = new org.apache.airavata.model.status.JobStatus();
+            _elem6.read(iprot);
+            struct.jobStatuses.add(_elem6);
+          }
+        }
         struct.setJobStatusIsSet(true);
       }
       if (incoming.get(2)) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46fd511/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
index 471d7c5..00db295 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
@@ -23,32 +23,15 @@
  */
 package org.apache.airavata.model.process;
 
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-
 import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
+
 import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.*;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 /**
@@ -68,7 +51,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
   private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
   private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)3);
   private static final org.apache.thrift.protocol.TField LAST_UPDATE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastUpdateTime", org.apache.thrift.protocol.TType.I64, (short)4);
-  private static final org.apache.thrift.protocol.TField PROCESS_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("processStatus", org.apache.thrift.protocol.TType.LIST, (short)5);
+  private static final org.apache.thrift.protocol.TField PROCESS_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("processStatuses", org.apache.thrift.protocol.TType.LIST, (short)5);
   private static final org.apache.thrift.protocol.TField PROCESS_DETAIL_FIELD_DESC = new org.apache.thrift.protocol.TField("processDetail", org.apache.thrift.protocol.TType.STRING, (short)6);
   private static final org.apache.thrift.protocol.TField APPLICATION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)7);
   private static final org.apache.thrift.protocol.TField APPLICATION_DEPLOYMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationDeploymentId", org.apache.thrift.protocol.TType.STRING, (short)8);
@@ -78,7 +61,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
   private static final org.apache.thrift.protocol.TField PROCESS_RESOURCE_SCHEDULE_FIELD_DESC = new org.apache.thrift.protocol.TField("processResourceSchedule", org.apache.thrift.protocol.TType.STRUCT, (short)12);
   private static final org.apache.thrift.protocol.TField TASKS_FIELD_DESC = new org.apache.thrift.protocol.TField("tasks", org.apache.thrift.protocol.TType.LIST, (short)13);
   private static final org.apache.thrift.protocol.TField TASK_DAG_FIELD_DESC = new org.apache.thrift.protocol.TField("taskDag", org.apache.thrift.protocol.TType.STRING, (short)14);
-  private static final org.apache.thrift.protocol.TField PROCESS_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("processError", org.apache.thrift.protocol.TType.LIST, (short)15);
+  private static final org.apache.thrift.protocol.TField PROCESS_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("processErrors", org.apache.thrift.protocol.TType.LIST, (short)15);
   private static final org.apache.thrift.protocol.TField GATEWAY_EXECUTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayExecutionId", org.apache.thrift.protocol.TType.STRING, (short)16);
   private static final org.apache.thrift.protocol.TField ENABLE_EMAIL_NOTIFICATION_FIELD_DESC = new org.apache.thrift.protocol.TField("enableEmailNotification", org.apache.thrift.protocol.TType.BOOL, (short)17);
   private static final org.apache.thrift.protocol.TField EMAIL_ADDRESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("emailAddresses", org.apache.thrift.protocol.TType.LIST, (short)18);
@@ -98,7 +81,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
   private String experimentId; // required
   private long creationTime; // optional
   private long lastUpdateTime; // optional
-  private List<org.apache.airavata.model.status.ProcessStatus> processStatus; // optional
+  private List<org.apache.airavata.model.status.ProcessStatus> processStatuses; // optional
   private String processDetail; // optional
   private String applicationInterfaceId; // optional
   private String applicationDeploymentId; // optional
@@ -108,7 +91,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
   private org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel processResourceSchedule; // optional
   private List<org.apache.airavata.model.task.TaskModel> tasks; // optional
   private String taskDag; // optional
-  private List<org.apache.airavata.model.commons.ErrorModel> processError; // optional
+  private List<org.apache.airavata.model.commons.ErrorModel> processErrors; // optional
   private String gatewayExecutionId; // optional
   private boolean enableEmailNotification; // optional
   private List<String> emailAddresses; // optional
@@ -124,7 +107,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     EXPERIMENT_ID((short)2, "experimentId"),
     CREATION_TIME((short)3, "creationTime"),
     LAST_UPDATE_TIME((short)4, "lastUpdateTime"),
-    PROCESS_STATUS((short)5, "processStatus"),
+    PROCESS_STATUS((short)5, "processStatuses"),
     PROCESS_DETAIL((short)6, "processDetail"),
     APPLICATION_INTERFACE_ID((short)7, "applicationInterfaceId"),
     APPLICATION_DEPLOYMENT_ID((short)8, "applicationDeploymentId"),
@@ -134,7 +117,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     PROCESS_RESOURCE_SCHEDULE((short)12, "processResourceSchedule"),
     TASKS((short)13, "tasks"),
     TASK_DAG((short)14, "taskDag"),
-    PROCESS_ERROR((short)15, "processError"),
+    PROCESS_ERROR((short)15, "processErrors"),
     GATEWAY_EXECUTION_ID((short)16, "gatewayExecutionId"),
     ENABLE_EMAIL_NOTIFICATION((short)17, "enableEmailNotification"),
     EMAIL_ADDRESSES((short)18, "emailAddresses"),
@@ -260,7 +243,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
     tmpMap.put(_Fields.LAST_UPDATE_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastUpdateTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.PROCESS_STATUS, new org.apache.thrift.meta_data.FieldMetaData("processStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+    tmpMap.put(_Fields.PROCESS_STATUS, new org.apache.thrift.meta_data.FieldMetaData("processStatuses", org.apache.thrift.TFieldRequirementType.OPTIONAL,
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ProcessStatus.class))));
     tmpMap.put(_Fields.PROCESS_DETAIL, new org.apache.thrift.meta_data.FieldMetaData("processDetail", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -284,7 +267,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.task.TaskModel.class))));
     tmpMap.put(_Fields.TASK_DAG, new org.apache.thrift.meta_data.FieldMetaData("taskDag", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PROCESS_ERROR, new org.apache.thrift.meta_data.FieldMetaData("processError", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+    tmpMap.put(_Fields.PROCESS_ERROR, new org.apache.thrift.meta_data.FieldMetaData("processErrors", org.apache.thrift.TFieldRequirementType.OPTIONAL,
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class))));
     tmpMap.put(_Fields.GATEWAY_EXECUTION_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayExecutionId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -338,11 +321,11 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     this.creationTime = other.creationTime;
     this.lastUpdateTime = other.lastUpdateTime;
     if (other.isSetProcessStatus()) {
-      List<org.apache.airavata.model.status.ProcessStatus> __this__processStatus = new ArrayList<org.apache.airavata.model.status.ProcessStatus>(other.processStatus.size());
-      for (org.apache.airavata.model.status.ProcessStatus other_element : other.processStatus) {
+      List<org.apache.airavata.model.status.ProcessStatus> __this__processStatus = new ArrayList<org.apache.airavata.model.status.ProcessStatus>(other.processStatuses.size());
+      for (org.apache.airavata.model.status.ProcessStatus other_element : other.processStatuses) {
         __this__processStatus.add(new org.apache.airavata.model.status.ProcessStatus(other_element));
       }
-      this.processStatus = __this__processStatus;
+      this.processStatuses = __this__processStatus;
     }
     if (other.isSetProcessDetail()) {
       this.processDetail = other.processDetail;
@@ -384,11 +367,11 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       this.taskDag = other.taskDag;
     }
     if (other.isSetProcessError()) {
-      List<org.apache.airavata.model.commons.ErrorModel> __this__processError = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(other.processError.size());
-      for (org.apache.airavata.model.commons.ErrorModel other_element : other.processError) {
+      List<org.apache.airavata.model.commons.ErrorModel> __this__processError = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(other.processErrors.size());
+      for (org.apache.airavata.model.commons.ErrorModel other_element : other.processErrors) {
         __this__processError.add(new org.apache.airavata.model.commons.ErrorModel(other_element));
       }
-      this.processError = __this__processError;
+      this.processErrors = __this__processError;
     }
     if (other.isSetGatewayExecutionId()) {
       this.gatewayExecutionId = other.gatewayExecutionId;
@@ -426,7 +409,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     this.creationTime = 0;
     setLastUpdateTimeIsSet(false);
     this.lastUpdateTime = 0;
-    this.processStatus = null;
+    this.processStatuses = null;
     this.processDetail = null;
     this.applicationInterfaceId = null;
     this.applicationDeploymentId = null;
@@ -436,7 +419,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     this.processResourceSchedule = null;
     this.tasks = null;
     this.taskDag = null;
-    this.processError = null;
+    this.processErrors = null;
     this.gatewayExecutionId = null;
     setEnableEmailNotificationIsSet(false);
     this.enableEmailNotification = false;
@@ -540,40 +523,40 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
   }
 
   public int getProcessStatusSize() {
-    return (this.processStatus == null) ? 0 : this.processStatus.size();
+    return (this.processStatuses == null) ? 0 : this.processStatuses.size();
   }
 
   public java.util.Iterator<org.apache.airavata.model.status.ProcessStatus> getProcessStatusIterator() {
-    return (this.processStatus == null) ? null : this.processStatus.iterator();
+    return (this.processStatuses == null) ? null : this.processStatuses.iterator();
   }
 
   public void addToProcessStatus(org.apache.airavata.model.status.ProcessStatus elem) {
-    if (this.processStatus == null) {
-      this.processStatus = new ArrayList<org.apache.airavata.model.status.ProcessStatus>();
+    if (this.processStatuses == null) {
+      this.processStatuses = new ArrayList<org.apache.airavata.model.status.ProcessStatus>();
     }
-    this.processStatus.add(elem);
+    this.processStatuses.add(elem);
   }
 
-  public List<org.apache.airavata.model.status.ProcessStatus> getProcessStatus() {
-    return this.processStatus;
+  public List<org.apache.airavata.model.status.ProcessStatus> getProcessStatuses() {
+    return this.processStatuses;
   }
 
-  public void setProcessStatus(List<org.apache.airavata.model.status.ProcessStatus> processStatus) {
-    this.processStatus = processStatus;
+  public void setProcessStatuses(List<org.apache.airavata.model.status.ProcessStatus> processStatuses) {
+    this.processStatuses = processStatuses;
   }
 
   public void unsetProcessStatus() {
-    this.processStatus = null;
+    this.processStatuses = null;
   }
 
-  /** Returns true if field processStatus is set (has been assigned a value) and false otherwise */
+  /** Returns true if field processStatuses is set (has been assigned a value) and false otherwise */
   public boolean isSetProcessStatus() {
-    return this.processStatus != null;
+    return this.processStatuses != null;
   }
 
   public void setProcessStatusIsSet(boolean value) {
     if (!value) {
-      this.processStatus = null;
+      this.processStatuses = null;
     }
   }
 
@@ -830,40 +813,40 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
   }
 
   public int getProcessErrorSize() {
-    return (this.processError == null) ? 0 : this.processError.size();
+    return (this.processErrors == null) ? 0 : this.processErrors.size();
   }
 
   public java.util.Iterator<org.apache.airavata.model.commons.ErrorModel> getProcessErrorIterator() {
-    return (this.processError == null) ? null : this.processError.iterator();
+    return (this.processErrors == null) ? null : this.processErrors.iterator();
   }
 
   public void addToProcessError(org.apache.airavata.model.commons.ErrorModel elem) {
-    if (this.processError == null) {
-      this.processError = new ArrayList<org.apache.airavata.model.commons.ErrorModel>();
+    if (this.processErrors == null) {
+      this.processErrors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>();
     }
-    this.processError.add(elem);
+    this.processErrors.add(elem);
   }
 
-  public List<org.apache.airavata.model.commons.ErrorModel> getProcessError() {
-    return this.processError;
+  public List<org.apache.airavata.model.commons.ErrorModel> getProcessErrors() {
+    return this.processErrors;
   }
 
-  public void setProcessError(List<org.apache.airavata.model.commons.ErrorModel> processError) {
-    this.processError = processError;
+  public void setProcessErrors(List<org.apache.airavata.model.commons.ErrorModel> processErrors) {
+    this.processErrors = processErrors;
   }
 
   public void unsetProcessError() {
-    this.processError = null;
+    this.processErrors = null;
   }
 
-  /** Returns true if field processError is set (has been assigned a value) and false otherwise */
+  /** Returns true if field processErrors is set (has been assigned a value) and false otherwise */
   public boolean isSetProcessError() {
-    return this.processError != null;
+    return this.processErrors != null;
   }
 
   public void setProcessErrorIsSet(boolean value) {
     if (!value) {
-      this.processError = null;
+      this.processErrors = null;
     }
   }
 
@@ -1102,7 +1085,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       if (value == null) {
         unsetProcessStatus();
       } else {
-        setProcessStatus((List<org.apache.airavata.model.status.ProcessStatus>)value);
+        setProcessStatuses((List<org.apache.airavata.model.status.ProcessStatus>) value);
       }
       break;
 
@@ -1182,7 +1165,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       if (value == null) {
         unsetProcessError();
       } else {
-        setProcessError((List<org.apache.airavata.model.commons.ErrorModel>)value);
+        setProcessErrors((List<org.apache.airavata.model.commons.ErrorModel>) value);
       }
       break;
 
@@ -1268,7 +1251,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       return getLastUpdateTime();
 
     case PROCESS_STATUS:
-      return getProcessStatus();
+      return getProcessStatuses();
 
     case PROCESS_DETAIL:
       return getProcessDetail();
@@ -1298,7 +1281,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       return getTaskDag();
 
     case PROCESS_ERROR:
-      return getProcessError();
+      return getProcessErrors();
 
     case GATEWAY_EXECUTION_ID:
       return getGatewayExecutionId();
@@ -1439,7 +1422,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     if (this_present_processStatus || that_present_processStatus) {
       if (!(this_present_processStatus && that_present_processStatus))
         return false;
-      if (!this.processStatus.equals(that.processStatus))
+      if (!this.processStatuses.equals(that.processStatuses))
         return false;
     }
 
@@ -1529,7 +1512,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     if (this_present_processError || that_present_processError) {
       if (!(this_present_processError && that_present_processError))
         return false;
-      if (!this.processError.equals(that.processError))
+      if (!this.processErrors.equals(that.processErrors))
         return false;
     }
 
@@ -1635,7 +1618,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     boolean present_processStatus = true && (isSetProcessStatus());
     list.add(present_processStatus);
     if (present_processStatus)
-      list.add(processStatus);
+      list.add(processStatuses);
 
     boolean present_processDetail = true && (isSetProcessDetail());
     list.add(present_processDetail);
@@ -1685,7 +1668,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     boolean present_processError = true && (isSetProcessError());
     list.add(present_processError);
     if (present_processError)
-      list.add(processError);
+      list.add(processErrors);
 
     boolean present_gatewayExecutionId = true && (isSetGatewayExecutionId());
     list.add(present_gatewayExecutionId);
@@ -1783,7 +1766,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       return lastComparison;
     }
     if (isSetProcessStatus()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processStatus, other.processStatus);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processStatuses, other.processStatuses);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -1883,7 +1866,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       return lastComparison;
     }
     if (isSetProcessError()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processError, other.processError);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processErrors, other.processErrors);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -2017,11 +2000,11 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     }
     if (isSetProcessStatus()) {
       if (!first) sb.append(", ");
-      sb.append("processStatus:");
-      if (this.processStatus == null) {
+      sb.append("processStatuses:");
+      if (this.processStatuses == null) {
         sb.append("null");
       } else {
-        sb.append(this.processStatus);
+        sb.append(this.processStatuses);
       }
       first = false;
     }
@@ -2117,11 +2100,11 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     }
     if (isSetProcessError()) {
       if (!first) sb.append(", ");
-      sb.append("processError:");
-      if (this.processError == null) {
+      sb.append("processErrors:");
+      if (this.processErrors == null) {
         sb.append("null");
       } else {
-        sb.append(this.processError);
+        sb.append(this.processErrors);
       }
       first = false;
     }
@@ -2289,13 +2272,13 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
-                struct.processStatus = new ArrayList<org.apache.airavata.model.status.ProcessStatus>(_list0.size);
+                struct.processStatuses = new ArrayList<org.apache.airavata.model.status.ProcessStatus>(_list0.size);
                 org.apache.airavata.model.status.ProcessStatus _elem1;
                 for (int _i2 = 0; _i2 < _list0.size; ++_i2)
                 {
                   _elem1 = new org.apache.airavata.model.status.ProcessStatus();
                   _elem1.read(iprot);
-                  struct.processStatus.add(_elem1);
+                  struct.processStatuses.add(_elem1);
                 }
                 iprot.readListEnd();
               }
@@ -2414,13 +2397,13 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list12 = iprot.readListBegin();
-                struct.processError = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list12.size);
+                struct.processErrors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list12.size);
                 org.apache.airavata.model.commons.ErrorModel _elem13;
                 for (int _i14 = 0; _i14 < _list12.size; ++_i14)
                 {
                   _elem13 = new org.apache.airavata.model.commons.ErrorModel();
                   _elem13.read(iprot);
-                  struct.processError.add(_elem13);
+                  struct.processErrors.add(_elem13);
                 }
                 iprot.readListEnd();
               }
@@ -2536,12 +2519,12 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
         oprot.writeI64(struct.lastUpdateTime);
         oprot.writeFieldEnd();
       }
-      if (struct.processStatus != null) {
+      if (struct.processStatuses != null) {
         if (struct.isSetProcessStatus()) {
           oprot.writeFieldBegin(PROCESS_STATUS_FIELD_DESC);
           {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.processStatus.size()));
-            for (org.apache.airavata.model.status.ProcessStatus _iter18 : struct.processStatus)
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.processStatuses.size()));
+            for (org.apache.airavata.model.status.ProcessStatus _iter18 : struct.processStatuses)
             {
               _iter18.write(oprot);
             }
@@ -2634,12 +2617,12 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
           oprot.writeFieldEnd();
         }
       }
-      if (struct.processError != null) {
+      if (struct.processErrors != null) {
         if (struct.isSetProcessError()) {
           oprot.writeFieldBegin(PROCESS_ERROR_FIELD_DESC);
           {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.processError.size()));
-            for (org.apache.airavata.model.commons.ErrorModel _iter22 : struct.processError)
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.processErrors.size()));
+            for (org.apache.airavata.model.commons.ErrorModel _iter22 : struct.processErrors)
             {
               _iter22.write(oprot);
             }
@@ -2799,8 +2782,8 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       }
       if (struct.isSetProcessStatus()) {
         {
-          oprot.writeI32(struct.processStatus.size());
-          for (org.apache.airavata.model.status.ProcessStatus _iter24 : struct.processStatus)
+          oprot.writeI32(struct.processStatuses.size());
+          for (org.apache.airavata.model.status.ProcessStatus _iter24 : struct.processStatuses)
           {
             _iter24.write(oprot);
           }
@@ -2853,8 +2836,8 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       }
       if (struct.isSetProcessError()) {
         {
-          oprot.writeI32(struct.processError.size());
-          for (org.apache.airavata.model.commons.ErrorModel _iter28 : struct.processError)
+          oprot.writeI32(struct.processErrors.size());
+          for (org.apache.airavata.model.commons.ErrorModel _iter28 : struct.processErrors)
           {
             _iter28.write(oprot);
           }
@@ -2911,13 +2894,13 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       if (incoming.get(2)) {
         {
           org.apache.thrift.protocol.TList _list30 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.processStatus = new ArrayList<org.apache.airavata.model.status.ProcessStatus>(_list30.size);
+          struct.processStatuses = new ArrayList<org.apache.airavata.model.status.ProcessStatus>(_list30.size);
           org.apache.airavata.model.status.ProcessStatus _elem31;
           for (int _i32 = 0; _i32 < _list30.size; ++_i32)
           {
             _elem31 = new org.apache.airavata.model.status.ProcessStatus();
             _elem31.read(iprot);
-            struct.processStatus.add(_elem31);
+            struct.processStatuses.add(_elem31);
           }
         }
         struct.setProcessStatusIsSet(true);
@@ -2992,13 +2975,13 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       if (incoming.get(12)) {
         {
           org.apache.thrift.protocol.TList _list42 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.processError = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list42.size);
+          struct.processErrors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list42.size);
           org.apache.airavata.model.commons.ErrorModel _elem43;
           for (int _i44 = 0; _i44 < _list42.size; ++_i44)
           {
             _elem43 = new org.apache.airavata.model.commons.ErrorModel();
             _elem43.read(iprot);
-            struct.processError.add(_elem43);
+            struct.processErrors.add(_elem43);
           }
         }
         struct.setProcessErrorIsSet(true);