[
https://issues.apache.org/jira/browse/PHOENIX-3136?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Josh Elser updated PHOENIX-3136:
--------------------------------
Attachment: PHOENIX-3136.001.patch
Here's .001 which just removes the relocations for {{org.apache.calcite}} on
the queryserver and queryserver-thin modules.
Verified a local 4.8 install works. Let me pull up an 4.7 install side-by-side
and do some more testing before I commit.
> Relocation of Avatica classes breaks compatibilty between older version of
> thin-client/PQS
> ------------------------------------------------------------------------------------------
>
> Key: PHOENIX-3136
> URL: https://issues.apache.org/jira/browse/PHOENIX-3136
> Project: Phoenix
> Issue Type: Bug
> Reporter: Josh Elser
> Assignee: Josh Elser
> Priority: Blocker
> Fix For: 4.8.0
>
> Attachments: PHOENIX-3136.001.patch
>
>
> It was recently brought to my attention by [[email protected]] that the
> shading change will break all previous versions of the thin client from
> working with the newer PQS (and vice versa).
> Avatica uses the full class name in the message to identify what protobuf
> message to use to deserialize the bytes from the wire. As such, an older thin
> client would be expecting these protobuf classes to look like
> {{org.apache.calcite.avatica.proto.Responses$PrepareResponse}}. However after
> PHOENIX-2535, PQS would be sending back
> {{org.apache.phoenix.shaded.org.apache.calcite.avatica.proto.Responses$PrepareResponse}}.
> Both are trying to refer to the same Java class, but we can't disambiguate
> presently.
> Long term, I think the protocol itself will have to be updated in Avatica to
> be a little less brittle in this regard (I did not originally consider the
> implications that client/server might *have* the classes, but with a
> different name than what we had in Avatica).
> Short term, we can undo the relocation of the Avatica classes in the
> thin-client and queryserver artifacts. I will be working on this post-haste.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)