You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Tsz Wo Nicholas Sze (JIRA)" <ji...@apache.org> on 2015/11/24 21:06:11 UTC

[jira] [Moved] (HADOOP-12596) FIleSystem does not honor Configuration.getClassLoader() while loading FileSystem implementations

     [ https://issues.apache.org/jira/browse/HADOOP-12596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tsz Wo Nicholas Sze moved HDFS-8750 to HADOOP-12596:
----------------------------------------------------

    Component/s:     (was: fs)
                 fs
            Key: HADOOP-12596  (was: HDFS-8750)
        Project: Hadoop Common  (was: Hadoop HDFS)

> FIleSystem does not honor Configuration.getClassLoader() while loading FileSystem implementations
> -------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-12596
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12596
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>            Reporter: Himanshu
>            Assignee: Himanshu
>         Attachments: HDFS-8750.001.patch, HDFS-8750.002.patch, HDFS-8750.003.patch, HDFS-8750.004.patch
>
>
> In FileSystem.loadFileSystems(), at 
> https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java#L2652
> a "scheme" -> "FileSystem implementation" map is created from the jars available on classpath. It uses Thread.currentThread().getClassLoader() via ServiceLoader.load(FileSystem.class)
> Instead, loadFileSystems() should take Configuration as an argument and should first check if a classloader is configured in configuration.getClassLoader(), if yes then ServiceLoader.load(FileSystem.class, configuration.getClassLoader()) should be used.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)