[
https://issues.apache.org/jira/browse/PHOENIX-962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gabriel Reid resolved PHOENIX-962.
----------------------------------
Resolution: Fixed
Fix Version/s: 3.1
Pushed to 3.0 branch
> Basic querying fails if the current thread's context classloader is changed
> ---------------------------------------------------------------------------
>
> Key: PHOENIX-962
> URL: https://issues.apache.org/jira/browse/PHOENIX-962
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 3.0.0
> Reporter: Gabriel Reid
> Assignee: Gabriel Reid
> Fix For: 3.1
>
> Attachments: PHOENIX-962.patch, PHOENIX-962b.patch
>
>
> When using Phoenix 3.0.0 with HBase 0.94.x, any kind of basic querying fails
> if the connection is used by a thread that has a custom context classloader
> that doesn't link back up to the root classloader.
> This sounds like a somewhat contrived situation, but it is the case in
> clients where, for example, a Connection is instantiated within a background
> thread within a thread pool, and then passed in to a UI framework that uses a
> custom context classloader.
> The underlying cause is that there is a static call to
> HBaseConfiguration.create() within the HBase FilterList class, which is
> instantiated for many query calls. The HBaseConfiguration.create() call adds
> hbase-default (and other) resources to the underlying Configuration object,
> but these underlying resources can no longer be loaded because they are
> dependent on the context classloader for loading. Ensuring that the
> FilterList class is loaded with a context classloader that is used for
> loading other Phoenix classes will resolve this issue.
--
This message was sent by Atlassian JIRA
(v6.2#6252)