You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Josh Elser (JIRA)" <ji...@apache.org> on 2015/12/15 23:07:46 UTC

[jira] [Updated] (PHOENIX-2531) Phoenix thin-client jar has incorrect META-INF/services/java.sql.Driver file

     [ https://issues.apache.org/jira/browse/PHOENIX-2531?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Josh Elser updated PHOENIX-2531:
--------------------------------
    Attachment: PHOENIX-2531.patch

Patch explicitly lists the {{java.sql.Driver}} file to be included in the thin-client.jar which prevents the same file in any of the bundled dependencies from overwriting our version of the file.

> Phoenix thin-client jar has incorrect META-INF/services/java.sql.Driver file
> ----------------------------------------------------------------------------
>
>                 Key: PHOENIX-2531
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2531
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Josh Elser
>            Assignee: Josh Elser
>            Priority: Blocker
>             Fix For: 4.7.0
>
>         Attachments: PHOENIX-2531.patch
>
>
> Trying to hook up the thin-client to pherf, I was having some troubles with being unable to find the thin-client Driver. I knew that we should be getting it loaded by the service definition contained in the jar {{META-INF/services/java.sql.Driver}}.
> Upon inspection of the "normal" jar produced by {{phoenix-server-client}}, the contents of the file were as we expect {{org.apache.phoenix.queryserver.client.Driver}}. However, the top-level "thin-client" jar we bundle in the tarball had a value of {{org.apache.calcite.avatica.remote.Driver}} instead.
> It seems like when we built {{phoenix-$VERSION-thin-client.jar}} (jar-with-dependencies is all it is, really), Avatica's {{META-INF/services/java.sql.Driver}} was overwriting the copy we had in {{phoenix-server-client/src/main/resources}}. I'm not sure how/why we didn't notice this yet (for example, why did sqlline-thin.py work?), but it's definitely busted for how it _should_ work.
> It's a simple enough fix to explicitly set the file in the assembly descriptor.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)