diff --git a/core/src/main/java/org/apache/sqoop/driver/JobManager.java b/core/src/main/java/org/apache/sqoop/driver/JobManager.java index d64c1481..4609c1b0 100644 --- a/core/src/main/java/org/apache/sqoop/driver/JobManager.java +++ b/core/src/main/java/org/apache/sqoop/driver/JobManager.java @@ -557,7 +557,7 @@ public MSubmission stop(long jobId, HttpEventContext ctx) { mSubmission.setLastUpdateUser(ctx.getUsername()); // Fetch new information to verify that the stop command has actually worked - submissionEngine.update(mSubmission); + updateSubmission(mSubmission); // Return updated structure return mSubmission; @@ -570,14 +570,25 @@ public MSubmission status(long jobId) { if (mSubmission == null) { return new MSubmission(jobId, new Date(), SubmissionStatus.NEVER_EXECUTED); } - // If the submission isin running state, let's update it + // If the submission is in running state, let's update it if (mSubmission.getStatus().isRunning()) { - submissionEngine.update(mSubmission); + updateSubmission(mSubmission); } return mSubmission; } + /** + * Get latest status of the submission from execution engine and + * persist that in the repository. + * + * @param submission Submission to update + */ + public void updateSubmission(MSubmission submission) { + submissionEngine.update(submission); + RepositoryManager.getInstance().getRepository().updateSubmission(submission); + } + @Override public synchronized void configurationChanged() { LOG.info("Begin submission engine manager reconfiguring"); @@ -676,7 +687,7 @@ public void run() { .findUnfinishedSubmissions(); for (MSubmission submission : unfinishedSubmissions) { - submissionEngine.update(submission); + updateSubmission(submission); } Thread.sleep(updateSleep); diff --git a/submission/mapreduce/src/main/java/org/apache/sqoop/submission/mapreduce/MapreduceSubmissionEngine.java b/submission/mapreduce/src/main/java/org/apache/sqoop/submission/mapreduce/MapreduceSubmissionEngine.java index f2493182..bf94df93 100644 --- a/submission/mapreduce/src/main/java/org/apache/sqoop/submission/mapreduce/MapreduceSubmissionEngine.java +++ b/submission/mapreduce/src/main/java/org/apache/sqoop/submission/mapreduce/MapreduceSubmissionEngine.java @@ -475,8 +475,6 @@ public void update(MSubmission submission) { submission.setProgress(progress); submission.setCounters(counters); submission.setLastUpdateDate(new Date()); - - RepositoryManager.getInstance().getRepository().updateSubmission(submission); } catch (IOException e) { throw new SqoopException(MapreduceSubmissionError.MAPREDUCE_0003, e); }