You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Dmitry Tolpeko (JIRA)" <ji...@apache.org> on 2016/06/08 14:00:27 UTC

[jira] [Resolved] (HIVE-13721) HPL/SQL COPY FROM FTP Statement: lack of DIR option leads to NPE

     [ https://issues.apache.org/jira/browse/HIVE-13721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dmitry Tolpeko resolved HIVE-13721.
-----------------------------------
       Resolution: Fixed
    Fix Version/s: 2.2.0

> HPL/SQL COPY FROM FTP Statement: lack of DIR option leads to NPE
> ----------------------------------------------------------------
>
>                 Key: HIVE-13721
>                 URL: https://issues.apache.org/jira/browse/HIVE-13721
>             Project: Hive
>          Issue Type: Bug
>          Components: hpl/sql
>            Reporter: Carter Shanklin
>            Assignee: Dmitry Tolpeko
>             Fix For: 2.2.0
>
>
> The docs (http://www.hplsql.org/copy-from-ftp) suggest DIR is optional. When I left it out in:
> {code}
> copy from ftp hdp250.example.com user 'vagrant' pwd 'vagrant'  files 'sampledata.csv' to /tmp overwrite
> {code}
> I got:
> {code}
> Ln:2 Connected to ftp: hdp250.example.com (29 ms)
> Ln:2 Retrieving directory listing
>   Listing the current working FTP directory
> Ln:2 Files to copy: 45 bytes, 1 file, 0 subdirectories scanned (27 ms)
> Exception in thread "main" java.lang.NullPointerException
> 	at org.apache.hive.hplsql.Ftp.getTargetFileName(Ftp.java:342)
> 	at org.apache.hive.hplsql.Ftp.run(Ftp.java:149)
> 	at org.apache.hive.hplsql.Ftp.copyFiles(Ftp.java:121)
> 	at org.apache.hive.hplsql.Ftp.run(Ftp.java:91)
> 	at org.apache.hive.hplsql.Exec.visitCopy_from_ftp_stmt(Exec.java:1292)
> 	at org.apache.hive.hplsql.Exec.visitCopy_from_ftp_stmt(Exec.java:52)
> 	at org.apache.hive.hplsql.HplsqlParser$Copy_from_ftp_stmtContext.accept(HplsqlParser.java:11956)
> 	at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:70)
> 	at org.apache.hive.hplsql.Exec.visitStmt(Exec.java:994)
> 	at org.apache.hive.hplsql.Exec.visitStmt(Exec.java:52)
> 	at org.apache.hive.hplsql.HplsqlParser$StmtContext.accept(HplsqlParser.java:1012)
> 	at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:70)
> 	at org.apache.hive.hplsql.HplsqlBaseVisitor.visitBlock(HplsqlBaseVisitor.java:28)
> 	at org.apache.hive.hplsql.HplsqlParser$BlockContext.accept(HplsqlParser.java:446)
> 	at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:70)
> 	at org.apache.hive.hplsql.Exec.visitProgram(Exec.java:901)
> 	at org.apache.hive.hplsql.Exec.visitProgram(Exec.java:52)
> 	at org.apache.hive.hplsql.HplsqlParser$ProgramContext.accept(HplsqlParser.java:389)
> 	at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:42)
> 	at org.apache.hive.hplsql.Exec.run(Exec.java:760)
> 	at org.apache.hive.hplsql.Exec.run(Exec.java:736)
> 	at org.apache.hive.hplsql.Hplsql.main(Hplsql.java:23)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
> 	at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
> {code}
> Traceback leads to:
> {code}
>   /**
>    * Get the target file relative path and name
>    */
>   String getTargetFileName(String file) {
>     int len = dir.length();
>     return targetDir + file.substring(len);
>   }
> {code}
> in Ftp.java
> When I added DIR '/' this worked.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)