Repository: sqoop
Updated Branches:
  refs/heads/sqoop2 ae31a0237 -> c4d5badac


SQOOP-1812: Sqoop2: Repository upgrade issue will prevent server startup

(Qian Xu via Abraham Elmahrek)


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

Branch: refs/heads/sqoop2
Commit: c4d5badacfd5154d177db6494a628995eecfca81
Parents: ae31a02
Author: Abraham Elmahrek <[email protected]>
Authored: Thu Dec 4 00:02:01 2014 -0800
Committer: Abraham Elmahrek <[email protected]>
Committed: Thu Dec 4 00:02:01 2014 -0800

----------------------------------------------------------------------
 .../repository/derby/DerbyRepositoryHandler.java      |  5 ++++-
 .../derby/TestRespositorySchemaUpgrade.java           | 14 +++++++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/c4d5bada/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
----------------------------------------------------------------------
diff --git 
a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
 
b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
index 907978f..7ba851c 100644
--- 
a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
+++ 
b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
@@ -204,8 +204,11 @@ public class DerbyRepositoryHandler extends 
CommonRepositoryHandler {
    */
   @Override
   public void createOrUpgradeRepository(Connection conn) {
-
     int repositoryVersion = detectRepositoryVersion(conn);
+    if (repositoryVersion == 
DerbyRepoConstants.LATEST_DERBY_REPOSITORY_VERSION) {
+      return;
+    }
+
     if(repositoryVersion <= 0) {
       runQuery(QUERY_CREATE_SCHEMA_SQOOP, conn);
       runQuery(QUERY_CREATE_TABLE_SQ_CONNECTOR, conn);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/c4d5bada/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRespositorySchemaUpgrade.java
----------------------------------------------------------------------
diff --git 
a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRespositorySchemaUpgrade.java
 
b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRespositorySchemaUpgrade.java
index 928c34a..934056f 100644
--- 
a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRespositorySchemaUpgrade.java
+++ 
b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRespositorySchemaUpgrade.java
@@ -45,12 +45,24 @@ public class TestRespositorySchemaUpgrade extends 
DerbyTestCase {
   }
 
   @Test
-  public void testCreateorUpdateRepositorySchema() throws Exception {
+  public void testCreatorUpdateRepositorySchema() throws Exception {
     
assertFalse(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
     handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
     
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
   }
 
+  @Test
+  public void testDoubleUpdateRepositorySchema() throws Exception {
+    // Setup
+    
assertFalse(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
+    handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
+    
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
+
+    // Exercise and verify
+    handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
+    
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
+  }
+
   @Test(expected = SQLIntegrityConstraintViolationException.class)
   public void testUpgradeVersion4WithNonUniqueJobNameFailure() throws 
Exception {
     super.createOrUpgradeSchema(4);

Reply via email to