[ https://issues.apache.org/jira/browse/SQOOP-1117?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
sam liu updated SQOOP-1117: --------------------------- Attachment: SQOOP-1117.patch As the solution mentioned above, with the attached patch, the NPE will not happen any more, but with a more meaningful reminder as '13/07/01 20:06:39 ERROR tool.ImportTool: Imported Failed: There is no column found in the target table DB2ADMIN.DB2TEST_TBL1001. Please ensure your table name is correct.' > when failed to import a non-existing table, the failure information includes > NullPointerException > ------------------------------------------------------------------------------------------------- > > Key: SQOOP-1117 > URL: https://issues.apache.org/jira/browse/SQOOP-1117 > Project: Sqoop > Issue Type: Bug > Components: tools > Affects Versions: 1.4.3 > Environment: RHEL 5.4 > Reporter: sam liu > Priority: Minor > Fix For: 1.4.4 > > Attachments: SQOOP-1117.patch > > > when failed to import a non-existing table, the returned failure information > includes java.lang.NullPointerException which customer does not care about. > These exception might confuse customers. > a) command: > sqoop import --connect jdbc:db2://hostname:50000/SAMPLE --table > DB2ADMIN.DB2TEST_TBL1001 --username sam --password pwd -m 1 --target-dir > /tmp/DB2TEST_TBL001_0620_f > b) result: > 13/06/26 22:39:50 WARN tool.BaseSqoopTool: Setting your password on the > command-line is insecure. Consider using -P instead. > 13/06/26 22:39:50 INFO manager.SqlManager: Using default fetchSize of 1000 > 13/06/26 22:39:50 INFO tool.CodeGenTool: Beginning code generation > 13/06/26 22:39:53 INFO manager.SqlManager: Executing SQL statement: SELECT > t.* FROM DB2ADMIN.DB2TEST_TBL1001 AS t WHERE 1=0 > 13/06/26 22:39:53 ERROR manager.SqlManager: Error executing statement: > com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, > SQLSTATE=42704, SQLERRMC=DB2ADMIN.DB2TEST_TBL1001, DRIVER=4.12.55 > com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, > SQLSTATE=42704, SQLERRMC=DB2ADMIN.DB2TEST_TBL1001, DRIVER=4.12.55 > at com.ibm.db2.jcc.am.hd.a(hd.java:676) > at com.ibm.db2.jcc.am.hd.a(hd.java:60) > at com.ibm.db2.jcc.am.hd.a(hd.java:127) > at com.ibm.db2.jcc.am.mn.c(mn.java:2621) > at com.ibm.db2.jcc.am.mn.d(mn.java:2609) > at com.ibm.db2.jcc.am.mn.a(mn.java:2085) > at com.ibm.db2.jcc.am.nn.a(nn.java:7054) > at com.ibm.db2.jcc.t4.cb.g(cb.java:141) > at com.ibm.db2.jcc.t4.cb.a(cb.java:41) > at com.ibm.db2.jcc.t4.q.a(q.java:32) > at com.ibm.db2.jcc.t4.rb.i(rb.java:135) > at com.ibm.db2.jcc.am.mn.ib(mn.java:2055) > at com.ibm.db2.jcc.am.nn.rc(nn.java:3219) > at com.ibm.db2.jcc.am.nn.b(nn.java:4002) > at com.ibm.db2.jcc.am.nn.ec(nn.java:728) > at com.ibm.db2.jcc.am.nn.executeQuery(nn.java:698) > at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:539) > at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:548) > at > org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:191) > at > org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:175) > at > org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:262) > at > org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1235) > at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1060) > at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82) > at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390) > at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476) > at org.apache.sqoop.Sqoop.run(Sqoop.java:145) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) > at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229) > at org.apache.sqoop.Sqoop.main(Sqoop.java:238) > at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57) > 13/06/26 22:39:53 INFO manager.SqlManager: Executing SQL statement: SELECT > t.* FROM DB2ADMIN.DB2TEST_TBL1001 AS t WHERE 1=0 > 13/06/26 22:39:53 ERROR manager.SqlManager: Error executing statement: > com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, > SQLSTATE=42704, SQLERRMC=DB2ADMIN.DB2TEST_TBL1001, DRIVER=4.12.55 > com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, > SQLSTATE=42704, SQLERRMC=DB2ADMIN.DB2TEST_TBL1001, DRIVER=4.12.55 > at com.ibm.db2.jcc.am.hd.a(hd.java:676) > at com.ibm.db2.jcc.am.hd.a(hd.java:60) > at com.ibm.db2.jcc.am.hd.a(hd.java:127) > at com.ibm.db2.jcc.am.mn.c(mn.java:2621) > at com.ibm.db2.jcc.am.mn.d(mn.java:2609) > at com.ibm.db2.jcc.am.mn.a(mn.java:2085) > at com.ibm.db2.jcc.am.nn.a(nn.java:7054) > at com.ibm.db2.jcc.t4.cb.g(cb.java:141) > at com.ibm.db2.jcc.t4.cb.a(cb.java:41) > at com.ibm.db2.jcc.t4.q.a(q.java:32) > at com.ibm.db2.jcc.t4.rb.i(rb.java:135) > at com.ibm.db2.jcc.am.mn.ib(mn.java:2055) > at com.ibm.db2.jcc.am.nn.rc(nn.java:3219) > at com.ibm.db2.jcc.am.nn.b(nn.java:4002) > at com.ibm.db2.jcc.am.nn.ec(nn.java:728) > at com.ibm.db2.jcc.am.nn.executeQuery(nn.java:698) > at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:539) > at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:548) > at > org.apache.sqoop.manager.SqlManager.getColumnNamesForRawQuery(SqlManager.java:126) > at > org.apache.sqoop.manager.SqlManager.getColumnNames(SqlManager.java:110) > at > org.apache.sqoop.orm.ClassWriter.getColumnNames(ClassWriter.java:1207) > at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1062) > at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82) > at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390) > at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476) > at org.apache.sqoop.Sqoop.run(Sqoop.java:145) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) > at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229) > at org.apache.sqoop.Sqoop.main(Sqoop.java:238) > at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57) > 13/06/26 22:39:53 WARN tool.BaseSqoopTool: Error while closing connection: > com.ibm.db2.jcc.am.SqlException: [jcc][t4][10251][10308][4.12.55] > java.sql.Connection.close() requested while a transaction is in progress on > the connection. > The transaction remains active, and the connection cannot be closed. > ERRORCODE=-4471, SQLSTATE=null > 13/06/26 22:39:53 ERROR sqoop.Sqoop: Got exception running Sqoop: > java.lang.NullPointerException > java.lang.NullPointerException > at > org.apache.sqoop.orm.ClassWriter.cleanColNames(ClassWriter.java:1045) > at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1066) > at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82) > at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:390) > at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476) > at org.apache.sqoop.Sqoop.run(Sqoop.java:145) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) > at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229) > at org.apache.sqoop.Sqoop.main(Sqoop.java:238) > at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira