diff --git a/src/test/com/cloudera/sqoop/manager/MySQLTestUtils.java b/src/test/com/cloudera/sqoop/manager/MySQLTestUtils.java
index 2e2448a..77aefde 100644
--- a/src/test/com/cloudera/sqoop/manager/MySQLTestUtils.java
+++ b/src/test/com/cloudera/sqoop/manager/MySQLTestUtils.java
@@ -19,7 +19,7 @@
 package com.cloudera.sqoop.manager;
 
 import com.cloudera.sqoop.SqoopOptions;
-import jodd.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -149,7 +149,7 @@
   }
 
   private boolean isSet(String userPass) {
-    return !StringUtil.isBlank(userPass);
+    return !StringUtils.isBlank(userPass);
   }
 
   public void addPasswordIfIsSet(SqoopOptions opts) {
diff --git a/src/test/com/cloudera/sqoop/manager/OracleExportTest.java b/src/test/com/cloudera/sqoop/manager/OracleExportTest.java
index e716510..7ee3d94 100644
--- a/src/test/com/cloudera/sqoop/manager/OracleExportTest.java
+++ b/src/test/com/cloudera/sqoop/manager/OracleExportTest.java
@@ -271,10 +271,10 @@
     createTable();
     // first time will be insert.
     runExport(getArgv(true, 10, 10, newStrArray(null,
-        "--update-key", "id", "--update-mode", "allowinsert")));
+        "--update-key", "ID", "--update-mode", "allowinsert")));
     // second time will be update.
     runExport(getArgv(true, 10, 10, newStrArray(null,
-        "--update-key", "id", "--update-mode", "allowinsert")));
+        "--update-key", "ID", "--update-mode", "allowinsert")));
     verifyExport(TOTAL_RECORDS);
   }
 }
diff --git a/src/test/org/apache/sqoop/manager/oracle/OracleCallExportTest.java b/src/test/org/apache/sqoop/manager/oracle/OracleCallExportTest.java
index 431df0f..1d3417a 100644
--- a/src/test/org/apache/sqoop/manager/oracle/OracleCallExportTest.java
+++ b/src/test/org/apache/sqoop/manager/oracle/OracleCallExportTest.java
@@ -90,23 +90,23 @@
   private void createObjects() {
 
     String createTableSql = "CREATE TABLE " + tableName + " ( "
-      + "\"id\"  INT NOT NULL PRIMARY KEY, "
-      + "\"msg\" VARCHAR(24) NOT NULL, "
+      + "\"ID\"  INT NOT NULL PRIMARY KEY, "
+      + "\"MSG\" VARCHAR(24) NOT NULL, "
       + "\"d\" DATE, "
       + "\"f\" FLOAT, "
       + "\"vc\" VARCHAR(32))";
 
     String createProcSql = "CREATE PROCEDURE " + procName + " ( "
-      + "\"id\" IN INT,"
-      + "\"msg\" IN VARCHAR,"
+      + "\"ID\" IN INT,"
+      + "\"MSG\" IN VARCHAR,"
       + "\"d\" IN DATE,"
       + "\"f\" IN FLOAT) IS BEGIN "
       + "INSERT INTO " + tableName + " "
-      + "VALUES(\"id\","
-      + "\"msg\","
+      + "VALUES(\"ID\","
+      + "\"MSG\","
       + "\"d\","
       + "\"f\","
-      + "\"msg\" || '_2'); END;";
+      + "\"MSG\" || '_2'); END;";
 
     try {
       dropTableIfExists(tableName);
