code: private void validateFinishDate(Task task)
     {
        if (task.getFinish() == null)
        {
           Date startDate = task.getStart();
           if (startDate != null)
           {
              if (task.getMilestone())
              {
                 task.setFinish(startDate);
              }
              else
              {
                 Duration duration = task.getDuration();
                 if (duration != null)
                 {
                    ProjectCalendar calendar = task.getEffectiveCalendar();
                    task.setFinish(calendar.getDate(startDate, duration, false));
                 }
              }
           }
        }
     }
docs: When projectmanager.com exports schedules as MSPDI (via Aspose tasks)
  they do not have finish dates, just a start date and a duration.
  This method populates finish dates.
  
  @param task task to validate