hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sangjin Lee (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-13410) RunJar adds the content of the jar twice to the classpath
Date Tue, 09 Aug 2016 15:57:20 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-13410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15413770#comment-15413770

Sangjin Lee commented on HADOOP-13410:

Thanks [~yuanbo]! The patch does what the JIRA calls for, and I tested it locally.

That said, I'd like to find out from the community if there is any reason that the jar itself
needs to remain in the classpath after the unjarred content is added to the classpath. I'll
ask the community.

> RunJar adds the content of the jar twice to the classpath
> ---------------------------------------------------------
>                 Key: HADOOP-13410
>                 URL: https://issues.apache.org/jira/browse/HADOOP-13410
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: util
>            Reporter: Sangjin Lee
>            Assignee: Yuanbo Liu
>         Attachments: HADOOP-13410.001.patch
> Today when you run a "hadoop jar" command, the jar is unzipped to a temporary location
and gets added to the classloader.
> However, the original jar itself is still added to the classpath.
> {code}
>       List<URL> classPath = new ArrayList<>();
>       classPath.add(new File(workDir + "/").toURI().toURL());
>       classPath.add(file.toURI().toURL());
>       classPath.add(new File(workDir, "classes/").toURI().toURL());
>       File[] libs = new File(workDir, "lib").listFiles();
>       if (libs != null) {
>         for (File lib : libs) {
>           classPath.add(lib.toURI().toURL());
>         }
>       }
> {code}
> As a result, the contents of the jar are present in the classpath *twice* and are completely
redundant. Although this does not necessarily cause correctness issues, some stricter code
written to require a single presence of files may fail.
> I cannot think of a good reason why the jar should be added to the classpath if the unjarred
content was added to it. I think we should remove the jar from the classpath.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org

View raw message