[
https://issues.apache.org/jira/browse/HBASE-11110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lars Hofhansl resolved HBASE-11110.
-----------------------------------
Resolution: Fixed
Hadoop Flags: Reviewed
Committed to 0.94. Thanks Gabriel.
> Ability to load FilterList class is dependent on context classloader
> --------------------------------------------------------------------
>
> Key: HBASE-11110
> URL: https://issues.apache.org/jira/browse/HBASE-11110
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.94.19
> Reporter: Gabriel Reid
> Assignee: Gabriel Reid
> Fix For: 0.94.20
>
> Attachments: HBASE-11110.patch
>
>
> In the 0.94 branch, the FilterList class contains a static call to
> HBaseConfiguration.create(). This create call in turn adds the needed hbase
> resources to the Configuration object, and sets the classloader of the
> Configuration object to be the context classloader of the current thread (if
> it isn't null).
> This approach causes issues if the FilterList class is loaded from a thread
> that has a custom context classloader that doesn't run back up to the main
> application classloader. In this case,
> HBaseConfiguration.checkDefaultsVersion fails because the
> hbase.defaults.for.version configuration value can't be found (because
> hbase-default.xml can't be found by the custom context classloader).
> This is a concrete issue that was discovered via Apache Phoenix within a
> commercial tool, when a (JDBC) connection is opened via a pool, and then
> passed off to a UI thread that has a custom context classloader. The UI
> thread is then the first thing to load FilterList, leading to this issue.
--
This message was sent by Atlassian JIRA
(v6.2#6252)