Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 4986E200B61 for ; Tue, 9 Aug 2016 17:57:22 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 47DF6160AB0; Tue, 9 Aug 2016 15:57:22 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 9100D160A6B for ; Tue, 9 Aug 2016 17:57:21 +0200 (CEST) Received: (qmail 93785 invoked by uid 500); 9 Aug 2016 15:57:20 -0000 Mailing-List: contact common-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list common-issues@hadoop.apache.org Received: (qmail 93772 invoked by uid 99); 9 Aug 2016 15:57:20 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Aug 2016 15:57:20 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 87CAC2C02A5 for ; Tue, 9 Aug 2016 15:57:20 +0000 (UTC) Date: Tue, 9 Aug 2016 15:57:20 +0000 (UTC) From: "Sangjin Lee (JIRA)" To: common-issues@hadoop.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HADOOP-13410) RunJar adds the content of the jar twice to the classpath MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 09 Aug 2016 15:57:22 -0000 [ 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 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 (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org For additional commands, e-mail: common-issues-help@hadoop.apache.org