You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ja...@apache.org on 2015/08/25 17:50:39 UTC

sqoop git commit: SQOOP-2513: Sqoop2: Deadlock occurs between getJobStatus and JobManager.UpdateThread#updateSubmission

Repository: sqoop
Updated Branches:
  refs/heads/sqoop2 3668aea7d -> 826e5cc77


SQOOP-2513: Sqoop2: Deadlock occurs between getJobStatus and JobManager.UpdateThread#updateSubmission

(Dian Fu via Jarek Jarcec Cecho)


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

Branch: refs/heads/sqoop2
Commit: 826e5cc774b4ec9999950dbecc662950c0190358
Parents: 3668aea
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Tue Aug 25 08:50:01 2015 -0700
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Tue Aug 25 08:50:01 2015 -0700

----------------------------------------------------------------------
 .../repository/common/CommonRepositoryHandler.java    | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/826e5cc7/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryHandler.java
----------------------------------------------------------------------
diff --git a/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryHandler.java b/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryHandler.java
index b36e685..af9324f 100644
--- a/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryHandler.java
+++ b/repository/repository-common/src/main/java/org/apache/sqoop/repository/common/CommonRepositoryHandler.java
@@ -622,13 +622,9 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler {
    */
   @Override
   public void updateJob(MJob job, Connection conn) {
-    try (PreparedStatement deleteStmt = conn.prepareStatement(crudQueries.getStmtDeleteJobInput());
-         PreparedStatement updateStmt = conn.prepareStatement(crudQueries.getStmtUpdateJob());) {
-      // Firstly remove old values
-      deleteStmt.setLong(1, job.getPersistenceId());
-      deleteStmt.executeUpdate();
-
-      // Update job table
+    try (PreparedStatement updateStmt = conn.prepareStatement(crudQueries.getStmtUpdateJob());
+         PreparedStatement deleteStmt = conn.prepareStatement(crudQueries.getStmtDeleteJobInput());) {
+      // Firstly update job table
       updateStmt.setString(1, job.getName());
       updateStmt.setString(2, job.getLastUpdateUser());
       updateStmt.setTimestamp(3, new Timestamp(new Date().getTime()));
@@ -636,6 +632,10 @@ public abstract class CommonRepositoryHandler extends JdbcRepositoryHandler {
       updateStmt.setLong(4, job.getPersistenceId());
       updateStmt.executeUpdate();
 
+      // Secondly remove old values
+      deleteStmt.setLong(1, job.getPersistenceId());
+      deleteStmt.executeUpdate();
+
       // And reinsert new values
       createInputValues(crudQueries.getStmtInsertJobInput(),
           job.getPersistenceId(),