[ https://issues.apache.org/jira/browse/PHOENIX-962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13987300#comment-13987300 ]
James Taylor commented on PHOENIX-962: -------------------------------------- +1, but wow this is ugly :-( If there's not an HBase JIRA for this, please file one. > 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 > 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)