[ 
https://issues.apache.org/jira/browse/PIG-3046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13496644#comment-13496644
 ] 

Prashant Kommireddi commented on PIG-3046:
------------------------------------------

registerJar is the common place where jars are added. It does not make a lot of 
sense to do it specifically for pig.additional.jars only. A call 
PigServer.registerJar("") is valid and making a change to addJarsFromProperties 
only would not handle that.

Also, registerJar(String name) does not handle the case as you have mentioned 
in the snippet above. If you take a look at the following 
{code}
URL resource = locateJarFromResources(name);
{code}

You will notice that "resource" in case of an empty string is not null and 
if(!f.canRead) loop never gets invoked.
                
> An empty file name in -Dpig.additional.jars throws an error
> -----------------------------------------------------------
>
>                 Key: PIG-3046
>                 URL: https://issues.apache.org/jira/browse/PIG-3046
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.10.0, 0.11
>            Reporter: Cheolsoo Park
>            Assignee: Prashant Kommireddi
>              Labels: newbie
>         Attachments: PIG-3046_1.patch, PIG-3046_2.patch, PIG-3046.patch
>
>
> This issue was raised on the user mailing list. To reproduce it, please run 
> the following command in MR mode:
> {code}
> pig -Dpig.additional.jars=<jar1>::<jar2> <pig script>
> {code}
> As can be seen, I put {{::}} in the middle of {{-Dpig.additional.jars}}, and 
> this causes the following error:
> {code}
> Caused by: java.lang.IllegalArgumentException: Can not create a Path from
> an empty string at org.apache.hadoop.fs.Path.checkPathArg(Path.java:82)
> at org.apache.hadoop.fs.Path.<init>(Path.java:90)
> at org.apache.hadoop.fs.Path.<init>(Path.java:45)
> at 
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.shipToHDFS(JobControlCompiler.java:1455)
> at
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.putJarOnClassPathThroughDistributedCache(JobControlCompiler.java:1432)
> at 
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.getJob(JobControlCompiler.java:508)
> {code}
> Although it's not too hard to see what's wrong, it's not always easy to track 
> down where an empty file name is from. In particular if various environment 
> variables are set in another start-up script, it's time-consuming to identify 
> the root cause.
> In fact, Pig should just skip an empty file name instead attempts to convert 
> it to a path and throws an exception like this.

--
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

Reply via email to