You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "sam liu (JIRA)" <ji...@apache.org> on 2013/07/02 05:31:20 UTC

[jira] [Updated] (SQOOP-1117) when failed to import a non-existing table, the failure information includes NullPointerException

     [ 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