Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Cannot Reproduce
-
2.6.0, 2.7.1
-
None
-
None
-
Occured on: CentOS 6.3 or Ubuntu 14.04, Oracle JDK 1.7.0_45 or 1.8.0_66
-
Job, Command Line, Local File System, libjars
Description
Class concerned :
org.apache.hadoop.util.GenericOptionParser
Method :
public static URL[] getLibJars(final Configuration conf)
Line :
if (tmp.getFileSystem(conf).equals(FileSystem.getLocal(conf)))
In this method we check if the provided jar on the command line are on a local file system, else we emit a warning log and ignore it.
I've got the case where the two file systems retrieved (the one from the Path.getFileSystem(conf) and the one returned by FileSystem.getLocal(conf)) where two local file systems but different objects, and the equals() method, not having been implemented, defaulted to the object pointer equality, leading to my jar files not being taken into account.
I've quickly patched it to
tmp.getFileSystem(conf).getUri().equals(FileSystem.getLocal(conf).getUri()
to have my application work.
I did not dig further into determining whether the objects should have been the same, or whether the equals() method should have been implemented, but it has to be done.