You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "Jarek Jarcec Cecho (JIRA)" <ji...@apache.org> on 2013/11/05 21:16:18 UTC

[jira] [Created] (SQOOP-1227) Sqoop fails to compile against commons-io higher then 1.4

Jarek Jarcec Cecho created SQOOP-1227:
-----------------------------------------

             Summary: Sqoop fails to compile against commons-io higher then 1.4
                 Key: SQOOP-1227
                 URL: https://issues.apache.org/jira/browse/SQOOP-1227
             Project: Sqoop
          Issue Type: Bug
    Affects Versions: 1.4.4
            Reporter: Jarek Jarcec Cecho
            Assignee: Jarek Jarcec Cecho
             Fix For: 1.4.5


The problem is in [DataDrivenImportJob.writeAvroSchema|https://github.com/apache/sqoop/blob/trunk/src/java/org/apache/sqoop/mapreduce/DataDrivenImportJob.java#L103] where we have following code fragment:

{code}
    FileUtils.writeStringToFile(schemaFile, schema.toString(true), null);
{code}

The last parameter to the function call is {{null}} without any time. This works fine in {{commons-io}} 1.4 as the method {{writeStringToFile}} have only two different definitions:

{code}
writeStringToFile(File file, String data) 
writeStringToFile(File file, String data, String encoding) 
{code}

However later versions has added a lot of other definitions, such as:

{code}
writeStringToFile(File file, String data, Charset encoding)
{code}

And thus the compilation fails on ambiguity problem:

{code}
    [javac] /home/jarcec/apache/repos/sqoop/src/java/org/apache/sqoop/mapreduce/DataDrivenImportJob.java:109: error: reference to writeStringToFile is ambiguous, both method writeStringToFile(File,String,Charset) in FileUtils and method writeStringToFile(File,String,String) in FileUtils match
    [javac]     FileUtils.writeStringToFile(schemaFile, schema.toString(true), null);
    [javac]              ^
{code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)