Gabriel Reid created PHOENIX-962:
------------------------------------

             Summary: 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


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)

Reply via email to