Return-Path: X-Original-To: apmail-sqoop-dev-archive@www.apache.org Delivered-To: apmail-sqoop-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id F11EB196B5 for ; Fri, 4 Mar 2016 20:32:40 +0000 (UTC) Received: (qmail 36152 invoked by uid 500); 4 Mar 2016 20:32:40 -0000 Delivered-To: apmail-sqoop-dev-archive@sqoop.apache.org Received: (qmail 36116 invoked by uid 500); 4 Mar 2016 20:32:40 -0000 Mailing-List: contact dev-help@sqoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@sqoop.apache.org Delivered-To: mailing list dev@sqoop.apache.org Received: (qmail 36095 invoked by uid 99); 4 Mar 2016 20:32:40 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 04 Mar 2016 20:32:40 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id B16A52C1F5A for ; Fri, 4 Mar 2016 20:32:40 +0000 (UTC) Date: Fri, 4 Mar 2016 20:32:40 +0000 (UTC) From: "Hudson (JIRA)" To: dev@sqoop.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (SQOOP-2864) ClassWriter chokes on column names containing double quotes MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/SQOOP-2864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15180500#comment-15180500 ] Hudson commented on SQOOP-2864: ------------------------------- FAILURE: Integrated in Sqoop-hadoop100 #1006 (See [https://builds.apache.org/job/Sqoop-hadoop100/1006/]) SQOOP-2864: ClassWriter chokes on column names containing double quotes (venkat: [https://git-wip-us.apache.org/repos/asf?p=sqoop.git&a=commit&h=152fe93002253b8b3e433d4193ad1e9d1c1591ba]) * src/java/org/apache/sqoop/orm/ClassWriter.java > ClassWriter chokes on column names containing double quotes > ----------------------------------------------------------- > > Key: SQOOP-2864 > URL: https://issues.apache.org/jira/browse/SQOOP-2864 > Project: Sqoop > Issue Type: Bug > Affects Versions: 1.4.6 > Reporter: Jarek Jarcec Cecho > Assignee: Jarek Jarcec Cecho > Fix For: 1.4.7 > > Attachments: SQOOP-2864.patch > > > I've seen a user who created table with column names containing double quotes and while code generation, we quite spectacularly failed: > {code} > 16/03/02 12:14:13 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /usr/lib/hadoop-mapreduce > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:325: error: ')' expected > __sqoop$field_map.put(""tellmewhy"", this._tellmewhy_); > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:325: error: not a statement > __sqoop$field_map.put(""tellmewhy"", this._tellmewhy_); > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:325: error: ';' expected > __sqoop$field_map.put(""tellmewhy"", this._tellmewhy_); > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:325: error: not a statement > __sqoop$field_map.put(""tellmewhy"", this._tellmewhy_); > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:325: error: ';' expected > __sqoop$field_map.put(""tellmewhy"", this._tellmewhy_); > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:332: error: ')' expected > __sqoop$field_map.put(""tellmewhy"", this._tellmewhy_); > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:332: error: not a statement > __sqoop$field_map.put(""tellmewhy"", this._tellmewhy_); > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:332: error: ';' expected > __sqoop$field_map.put(""tellmewhy"", this._tellmewhy_); > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:332: error: not a statement > __sqoop$field_map.put(""tellmewhy"", this._tellmewhy_); > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:332: error: ';' expected > __sqoop$field_map.put(""tellmewhy"", this._tellmewhy_); > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:340: error: ')' expected > else if (""tellmewhy"".equals(__fieldName)) { > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:340: error: ';' expected > else if (""tellmewhy"".equals(__fieldName)) { > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:340: error: ';' expected > else if (""tellmewhy"".equals(__fieldName)) { > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:343: error: 'else' without 'if' > else if ("'single'".equals(__fieldName)) { > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:355: error: ')' expected > else if (""tellmewhy"".equals(__fieldName)) { > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:355: error: ';' expected > else if (""tellmewhy"".equals(__fieldName)) { > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:355: error: ';' expected > else if (""tellmewhy"".equals(__fieldName)) { > ^ > /tmp/sqoop-root/compile/60f084d5441147b848b007d2a18b504d/bofa.java:359: error: 'else' without 'if' > else if ("'single'".equals(__fieldName)) { > ^ > 18 errors > 16/03/02 12:14:14 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Error returned by javac > at org.apache.sqoop.orm.CompilationManager.compile(CompilationManager.java:217) > at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:108) > at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:488) > at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:615) > at org.apache.sqoop.Sqoop.run(Sqoop.java:143) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) > at org.apache.sqoop.Sqoop.main(Sqoop.java:236) > {code} > I've looked into it and the problem is that we've started preserving raw column names inside the generated class, but we did not escape properly the case when the column name contain double quotes. -- This message was sent by Atlassian JIRA (v6.3.4#6332)