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)