[ https://issues.apache.org/jira/browse/HBASE-11118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14037034#comment-14037034 ]
David Yu commented on HBASE-11118: ---------------------------------- First off, I'm not Daniel :-) {quote} The problem is classloading a protobuf ahead of our doctored one, one that is in the CLASPATH already put there by hadoop. {quote} I see. Would hadoop consider moving to your forked protobuf? If adding ByteString.wrap is the only modification, along with a field option (wrap = true) to make the protoc codegen emit ByteString.wrap, I'm sure its not a problem since no incompatibility will arise (new behavior is only activated by a new field option). {quote} Thank you. What happens then if we add new methods to the Interfaces? We'd have to modify the template? {quote} No modification needed. You'll just have to use a service option/annotation that activates the extra method generation in the template. {quote} (The protobuf generated classes are massive, they are half our lines of code). {quote} Indeed they are. There are variants (LITE_RUNTIME, etc) when you do not need the extra stuff (reflection, extension, descriptor, unknown fields, etc). Ofc you can always customize the output by working with protoc-gen {quote} Yeah, I suppose we're being lazy and we should be going back modifying protoc generation {quote} Yes and yes > non environment variable solution for "IllegalAccessError: class > com.google.protobuf.ZeroCopyLiteralByteString cannot access its superclass > com.google.protobuf.LiteralByteString" > ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: HBASE-11118 > URL: https://issues.apache.org/jira/browse/HBASE-11118 > Project: HBase > Issue Type: Bug > Affects Versions: 0.98.2 > Reporter: André Kelpe > Priority: Blocker > Fix For: 0.99.0 > > Attachments: 1118.suggested.undoing.optimization.on.clientside.txt, > 1118.suggested.undoing.optimization.on.clientside.txt, > HBASE-11118-0.98.patch.gz, HBASE-11118-trunk.patch.gz, shade_attempt.patch > > > I am running into the problem described in > https://issues.apache.org/jira/browse/HBASE-10304, while trying to use a > newer version within cascading.hbase > (https://github.com/cascading/cascading.hbase). > One of the features of cascading.hbase is that you can use it from lingual > (http://www.cascading.org/projects/lingual/), our SQL layer for hadoop. > lingual has a notion of providers, which are fat jars that we pull down > dynamically at runtime. Those jars give users the ability to talk to any > system or format from SQL. They are added to the classpath programmatically > before we submit jobs to a hadoop cluster. > Since lingual does not know upfront , which providers are going to be used in > a given run, the HADOOP_CLASSPATH trick proposed in the JIRA above is really > clunky and breaks the ease of use we had before. No other provider requires > this right now. > It would be great to have a programmatical way to fix this, when using fat > jars. -- This message was sent by Atlassian JIRA (v6.2#6252)