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);
