[ https://issues.apache.org/jira/browse/HBASE-22393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16841645#comment-16841645 ]
Wellington Chevreuil commented on HBASE-22393: ---------------------------------------------- Latest patch is relocating references to any class in *javax* domain, so it causes *NoClassDefFoundError* on process loading the generated hboss jar: {noformat} Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/oss/thirdparty/javax/security/sasl/SaslException at org.apache.hadoop.hbase.oss.thirdparty.org.apache.zookeeper.ClientCnxn.<init>(ClientCnxn.java:400) at org.apache.hadoop.hbase.oss.thirdparty.org.apache.zookeeper.ClientCnxn.<init>(ClientCnxn.java:359) at org.apache.hadoop.hbase.oss.thirdparty.org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:447) at org.apache.hadoop.hbase.oss.thirdparty.org.apache.curator.utils.DefaultZookeeperFactory.newZooKeeper(DefaultZookeeperFactory.java:29) at org.apache.hadoop.hbase.oss.thirdparty.org.apache.curator.framework.imps.CuratorFrameworkImpl$2.newZooKeeper(CuratorFrameworkImpl.java:191) at org.apache.hadoop.hbase.oss.thirdparty.org.apache.curator.HandleHolder$1.getZooKeeper(HandleHolder.java:101) at org.apache.hadoop.hbase.oss.thirdparty.org.apache.curator.HandleHolder.getZooKeeper(HandleHolder.java:57) at org.apache.hadoop.hbase.oss.thirdparty.org.apache.curator.ConnectionState.reset(ConnectionState.java:201) at org.apache.hadoop.hbase.oss.thirdparty.org.apache.curator.ConnectionState.start(ConnectionState.java:111) at org.apache.hadoop.hbase.oss.thirdparty.org.apache.curator.CuratorZookeeperClient.start(CuratorZookeeperClient.java:214) at org.apache.hadoop.hbase.oss.thirdparty.org.apache.curator.framework.imps.CuratorFrameworkImpl.start(CuratorFrameworkImpl.java:308) at org.apache.hadoop.hbase.oss.sync.ZKTreeLockManager.initialize(ZKTreeLockManager.java:90) {noformat} Since the offending dependency (jsr305) is already marked for exclusion, I believe we can safely remove this *javax relocation rule* from shade section in the pom. Attaching a patch example that worked on my tests (notice I don't have *javax* on the relocations portion). > HBOSS: Shade curator to prevent conflict with Hadoop > ---------------------------------------------------- > > Key: HBASE-22393 > URL: https://issues.apache.org/jira/browse/HBASE-22393 > Project: HBase > Issue Type: Bug > Components: Filesystem Integration > Affects Versions: hbase-filesystem-1.0.0-alpha1 > Reporter: Sean Mackrory > Assignee: Sean Mackrory > Priority: Critical > Labels: HBOSS > Fix For: hbase-filesystem-1.0.0-alpha1 > > Attachments: > 0001-HBASE-22393-HBOSS-Shade-dependencies-to-prevent-conf.patch, > 0001-HBASE-22393.patch, HBASE-22393.001.patch, HBASE-22393.002.patch > > > Hadoop uses a very old version of Curator, and if it ever ends up in the > classpath with HBOSS you can get this: > {code}Exception in thread "main" java.lang.IllegalAccessError: tried to > access method > org.apache.curator.framework.recipes.locks.InterProcessMutex.isOwnedByCurrentThread()Z > from class org.apache.hadoop.hbase.oss.sync.ZKTreeLockManager{code} > I think the simplest solution is to just shade Curator. -- This message was sent by Atlassian JIRA (v7.6.3#76005)