[ https://issues.apache.org/jira/browse/HADOOP-9424?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sangjin Lee reopened HADOOP-9424: --------------------------------- I would keep this issue open as it still is a real issue. Let's find a way to address this in the best way possible. It is not as urgent as other issues, so we can take some time to think it through. > The "hadoop jar" invocation should include the passed jar on the classpath as > a whole > ------------------------------------------------------------------------------------- > > Key: HADOOP-9424 > URL: https://issues.apache.org/jira/browse/HADOOP-9424 > Project: Hadoop Common > Issue Type: Bug > Components: util > Affects Versions: 2.0.3-alpha > Reporter: Harsh J > Assignee: Harsh J > Priority: Minor > Attachments: HADOOP-9424.patch > > > When you have a case such as this: > {{X.jar -> Classes = Main, Foo}} > {{Y.jar -> Classes = Bar}} > With implementation details such as: > * Main references Bar and invokes a public, static method on it. > * Bar does a class lookup to find Foo (Class.forName("Foo")). > Then when you do a {{HADOOP_CLASSPATH=Y.jar hadoop jar X.jar Main}}, the > Bar's method fails with a ClassNotFound exception cause of the way RunJar > runs. > RunJar extracts the passed jar and includes its contents on the ClassLoader > of its current thread but the {{Class.forName(…)}} call from another class > does not check that class loader and hence cannot find the class as its not > on any classpath it is aware of. > The script of "hadoop jar" should ideally include the passed jar argument to > the CLASSPATH before RunJar is invoked, for this above case to pass. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: common-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-dev-h...@hadoop.apache.org