Class StepExecution

java.lang.Object
org.springframework.batch.core.Entity
org.springframework.batch.core.StepExecution
All Implemented Interfaces:
Serializable

public class StepExecution extends Entity
Batch domain object representation for the execution of a step. Unlike JobExecution, additional properties are related to the processing of items, such as commit count and others.
Author:
Lucas Ward, Dave Syer, Mahmoud Ben Hassine, Taeik Lim
See Also:
  • Constructor Details

    • StepExecution

      public StepExecution(String stepName, JobExecution jobExecution, Long id)
      Constructor with mandatory properties.
      Parameters:
      stepName - The step to which this execution belongs.
      jobExecution - The current job execution.
      id - The ID of this execution.
    • StepExecution

      public StepExecution(String stepName, JobExecution jobExecution)
      Constructor that substitutes null for the execution ID.
      Parameters:
      stepName - The step to which this execution belongs.
      jobExecution - The current job execution.
  • Method Details

    • getExecutionContext

      public ExecutionContext getExecutionContext()
      Returns the ExecutionContext for this execution.
      Returns:
      the attributes.
    • setExecutionContext

      public void setExecutionContext(ExecutionContext executionContext)
      Sets the ExecutionContext for this execution.
      Parameters:
      executionContext - The attributes.
    • getCommitCount

      public long getCommitCount()
      Returns the current number of commits for this execution.
      Returns:
      the current number of commits.
    • setCommitCount

      public void setCommitCount(long commitCount)
      Sets the current number of commits for this execution.
      Parameters:
      commitCount - The current number of commits.
    • getEndTime

      @Nullable public LocalDateTime getEndTime()
      Returns the time when this execution ended or null if the step is running.
      Returns:
      the time when this execution ended or null if the step is running.
    • setEndTime

      public void setEndTime(LocalDateTime endTime)
      Sets the time when this execution ended.
      Parameters:
      endTime - The time when this execution ended.
    • getReadCount

      public long getReadCount()
      Returns the current number of items read for this execution.
      Returns:
      the current number of items read for this execution.
    • setReadCount

      public void setReadCount(long readCount)
      Sets the current number of read items for this execution.
      Parameters:
      readCount - The current number of read items for this execution.
    • getWriteCount

      public long getWriteCount()
      Returns the current number of items written for this execution.
      Returns:
      The current number of items written for this execution.
    • setWriteCount

      public void setWriteCount(long writeCount)
      Sets the current number of written items for this execution.
      Parameters:
      writeCount - The current number of written items for this execution.
    • getRollbackCount

      public long getRollbackCount()
      Returns the current number of rollbacks for this execution.
      Returns:
      the current number of rollbacks for this execution.
    • getFilterCount

      public long getFilterCount()
      Returns the current number of items filtered out of this execution.
      Returns:
      the current number of items filtered out of this execution.
    • setFilterCount

      public void setFilterCount(long filterCount)
      Sets the number of items filtered out of this execution.
      Parameters:
      filterCount - The number of items filtered out of this execution to set.
    • setRollbackCount

      public void setRollbackCount(long rollbackCount)
      Sets the number of rollbacks for this execution.
      Parameters:
      rollbackCount - long the number of rollbacks.
    • getCreateTime

      public LocalDateTime getCreateTime()
      Gets the time this execution was created
      Returns:
      the time when this execution was created.
    • setCreateTime

      public void setCreateTime(LocalDateTime createTime)
      Sets the time this execution was created
      Parameters:
      createTime - creation time of this execution.
    • getStartTime

      @Nullable public LocalDateTime getStartTime()
      Gets the time when this execution started.
      Returns:
      the time when this execution started.
    • setStartTime

      public void setStartTime(LocalDateTime startTime)
      Sets the time when this execution started.
      Parameters:
      startTime - The time when this execution started.
    • getStatus

      public BatchStatus getStatus()
      Returns the current status of this step.
      Returns:
      the current status of this step.
    • setStatus

      public void setStatus(BatchStatus status)
      Sets the current status of this step.
      Parameters:
      status - The current status of this step.
    • upgradeStatus

      public void upgradeStatus(BatchStatus status)
      Upgrade the status field if the provided value is greater than the existing one. Clients using this method to set the status can be sure that they do not overwrite a failed status with a successful one.
      Parameters:
      status - The new status value,
    • getStepName

      public String getStepName()
      Returns:
      the name of the step.
    • getJobExecutionId

      public Long getJobExecutionId()
      Accessor for the job execution ID.
      Returns:
      the jobExecutionId.
    • setExitStatus

      public void setExitStatus(ExitStatus exitStatus)
      Parameters:
      exitStatus - The ExitStatus instance used to establish the exit status.
    • getExitStatus

      public ExitStatus getExitStatus()
      Returns:
      the ExitStatus.
    • getJobExecution

      public JobExecution getJobExecution()
      Accessor for the execution context information of the enclosing job.
      Returns:
      the JobExecution that was used to start this step execution.
    • createStepContribution

      public StepContribution createStepContribution()
      Factory method for StepContribution.
      Returns:
      a new StepContribution
    • apply

      public void apply(StepContribution contribution)
      This method should be called on successful execution just before a chunk commit. Synchronizes access to the StepExecution so that changes are atomic.
      Parameters:
      contribution - The StepContribution instance used to update the StepExecution state.
    • incrementRollbackCount

      public void incrementRollbackCount()
      Increments the rollback count. Should be used on unsuccessful execution after a chunk has rolled back.
    • isTerminateOnly

      public boolean isTerminateOnly()
      Returns:
      flag to indicate that an execution should halt.
    • setTerminateOnly

      public void setTerminateOnly()
      Sets a flag that signals to an execution environment that this execution (and its surrounding job) wishes to exit.
    • getSkipCount

      public long getSkipCount()
      Returns:
      the total number of items skipped.
    • incrementCommitCount

      public void incrementCommitCount()
      Increment the number of commits.
    • getJobParameters

      public JobParameters getJobParameters()
      Convenience method to get the current job parameters.
      Returns:
      the JobParameters from the enclosing job or empty if that is null.
    • getReadSkipCount

      public long getReadSkipCount()
      Returns:
      the number of records skipped on read.
    • getWriteSkipCount

      public long getWriteSkipCount()
      Returns:
      the number of records skipped on write.
    • setReadSkipCount

      public void setReadSkipCount(long readSkipCount)
      Set the number of records skipped on read.
      Parameters:
      readSkipCount - A long containing the read skip count to be used for the step execution.
    • setWriteSkipCount

      public void setWriteSkipCount(long writeSkipCount)
      Set the number of records skipped on write.
      Parameters:
      writeSkipCount - A long containing write skip count to be used for the step execution.
    • getProcessSkipCount

      public long getProcessSkipCount()
      Returns:
      the number of records skipped during processing
    • setProcessSkipCount

      public void setProcessSkipCount(long processSkipCount)
      Sets the number of records skipped during processing.
      Parameters:
      processSkipCount - A long containing the process skip count to be used for the step execution.
    • getLastUpdated

      @Nullable public LocalDateTime getLastUpdated()
      Returns:
      the Date representing the last time this execution was persisted.
    • setLastUpdated

      public void setLastUpdated(LocalDateTime lastUpdated)
      Sets the time when the StepExecution was last updated before persisting.
      Parameters:
      lastUpdated - the LocalDateTime instance used to establish the last updated date for the StepExecution.
    • getFailureExceptions

      public List<Throwable> getFailureExceptions()
      Returns:
      the List of Throwable objects.
    • addFailureException

      public void addFailureException(Throwable throwable)
      Add a Throwable to failure exceptions.
      Parameters:
      throwable - The Throwable to add to failure exceptions.
    • equals

      public boolean equals(Object obj)
      Description copied from class: Entity
      Attempt to establish identity based on id if both exist. If either id does not exist, use Object.equals().
      Overrides:
      equals in class Entity
      See Also:
    • hashCode

      public int hashCode()
      Description copied from class: Entity
      Use id, if it exists, to establish a hash code. Otherwise fall back to Object.hashCode(). It is based on the same information as equals, so, if that changes, this will. Note that this follows the contract of Object.hashCode() but will cause problems for anyone adding an unsaved Entity to a Set because Set.contains() almost certainly returns false for the Entity after it is saved. Spring Batch does not store any of its entities in sets as a matter of course, so this is internally consistent. Clients should not be exposed to unsaved entities.
      Overrides:
      hashCode in class Entity
      See Also:
    • toString

      public String toString()
      Description copied from class: Entity
      Creates a string representation of the Entity, including the id, version, and class name.
      Overrides:
      toString in class Entity
    • getSummary

      public String getSummary()
      Returns:
      The String containing a summary of the step execution.