code: public void initTask(App application, Map<String, Object> properties)
      {
          if (m_application != null)
              return;     // No, already inited!
          m_application = (Application)application;
          if (properties != null)
          {
              if (m_properties != null)
                  m_properties.putAll(properties);
              else
                  m_properties = properties;
          }
          this.init(null);
      }
docs: If this task object was created from a class name, call init(xxx) for the task.
  You may want to put logic in here that checks to make sure this object was not already inited.
  Typically, you init a Task object and pass it to the job scheduler. The job scheduler
  will check to see if this task is owned by an application... if not, initTask() is called.