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 2016/02/24 17:47:09 UTC

sqoop git commit: SQOOP-2839: Sqoop import failure due to data member conflict in ORM code for table

Repository: sqoop
Updated Branches:
  refs/heads/trunk b84ebf1e8 -> cfa7927c2


SQOOP-2839: Sqoop import failure due to data member conflict in ORM code for table

(VISHNU S NAIR  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/cfa7927c
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/cfa7927c
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/cfa7927c

Branch: refs/heads/trunk
Commit: cfa7927c2a3c129d140da7fa13ec9c97e17566dd
Parents: b84ebf1
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Wed Feb 24 08:46:24 2016 -0800
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Wed Feb 24 08:46:24 2016 -0800

----------------------------------------------------------------------
 src/java/org/apache/sqoop/orm/ClassWriter.java  |  2 ++
 .../com/cloudera/sqoop/orm/TestClassWriter.java | 34 ++++++++++++++++++++
 2 files changed, 36 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/cfa7927c/src/java/org/apache/sqoop/orm/ClassWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/sqoop/orm/ClassWriter.java b/src/java/org/apache/sqoop/orm/ClassWriter.java
index 5202408..95c655d 100644
--- a/src/java/org/apache/sqoop/orm/ClassWriter.java
+++ b/src/java/org/apache/sqoop/orm/ClassWriter.java
@@ -121,6 +121,8 @@ public class ClassWriter {
     // not strictly reserved words, but collides with
     // our imports
     JAVA_RESERVED_WORDS.add("Text");
+    //Fix For Issue SQOOP-2839
+    JAVA_RESERVED_WORDS.add("PROTOCOL_VERSION");
   }
 
   public static final String PROPERTY_CODEGEN_METHODS_MAXCOLS =

http://git-wip-us.apache.org/repos/asf/sqoop/blob/cfa7927c/src/test/com/cloudera/sqoop/orm/TestClassWriter.java
----------------------------------------------------------------------
diff --git a/src/test/com/cloudera/sqoop/orm/TestClassWriter.java b/src/test/com/cloudera/sqoop/orm/TestClassWriter.java
index 83770a5..498db73 100644
--- a/src/test/com/cloudera/sqoop/orm/TestClassWriter.java
+++ b/src/test/com/cloudera/sqoop/orm/TestClassWriter.java
@@ -373,6 +373,8 @@ public class TestClassWriter extends TestCase {
         "9isLegalInSql"));
     assertEquals("____", ClassWriter.toJavaIdentifier("___"));
     assertEquals("__class", ClassWriter.toJavaIdentifier("_class"));
+    //Checking Java identifier for Constant PROTOCOL_VERSION
+    assertEquals("_PROTOCOL_VERSION", ClassWriter.toJavaIdentifier("PROTOCOL_VERSION"));
   }
 
   @Test
@@ -405,6 +407,38 @@ public class TestClassWriter extends TestCase {
         + HsqldbTestServer.getTableName());
   }
 
+  // Test For checking Codegneration perfroming successfully
+  // in case of Table with Column name as PROTOCOL_VERSION
+  @Test
+  public void testColumnNameAsProtocolVersion() throws SQLException {
+    // Recreate the table with column name as PROTOCOL_VERSION.
+    String tableName = HsqldbTestServer.getTableName();
+    Connection connection = testServer.getConnection();
+    Statement st = connection.createStatement();
+    try {
+      st.executeUpdate("DROP TABLE " + tableName + " IF EXISTS");
+      st.executeUpdate("CREATE TABLE " + tableName
+          + " (PROTOCOL_VERSION INT)");
+      st.executeUpdate("INSERT INTO " + tableName + " VALUES(42)");
+      connection.commit();
+    } finally {
+      st.close();
+      connection.close();
+    }
+
+    String [] argv = {
+      "--bindir",
+      JAR_GEN_DIR,
+      "--outdir",
+      CODE_GEN_DIR,
+      "--package-name",
+      OVERRIDE_PACKAGE_NAME,
+    };
+
+    runGenerationTest(argv, OVERRIDE_PACKAGE_NAME + "."
+        + HsqldbTestServer.getTableName());
+  }
+
   @Test
   public void testCloningTableWithVarbinaryDoesNotThrowNPE() throws SQLException,
       IOException, ClassNotFoundException, NoSuchMethodException,