Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-13889

Fix hbase-shaded-client artifact so it works on hbase-downstreamer

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.1.0, 1.1.0.1
    • 1.2.0, 1.1.2, 1.3.0, 2.0.0
    • Client
    • None
    • N/A?

    • Reviewed

    Description

      The hbase-shaded-client artifact was introduced in HBASE-13517. Thank you very much for this, as I am new to Java building and was having a very slow-moving time resolving conflicts. However, the shaded client artifact seems to be missing javax.xml.transform.TransformerException. I examined the JAR, which does not have this package/class.

      Steps to reproduce:

      Java:

      package com.mycompany.app;                                                                                                                                                        
                                                                                                                                                                                        
      import org.apache.hadoop.conf.Configuration;                                                                                                                                      
      import org.apache.hadoop.hbase.HBaseConfiguration;                                                                                                                                
      import org.apache.hadoop.hbase.client.Connection;                                                                                                                                 
      import org.apache.hadoop.hbase.client.ConnectionFactory;                                                                                                                          
                                                                                                                                                                                        
      public class App {                                                                                                                                                                                 
          public static void main( String[] args ) throws java.io.IOException {                                                                                                                                                                             
              Configuration config = HBaseConfiguration.create();                                                                                                                       
              Connection connection = ConnectionFactory.createConnection(config);                                                                                                       
          }                                                                                                                                                                             
      }
      

      POM:

      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"                                                                          
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">                                                                             
        <modelVersion>4.0.0</modelVersion>                                                                                                                                              
                                                                                                                                                                                        
        <groupId>com.mycompany.app</groupId>                                                                                                                                            
        <artifactId>my-app</artifactId>                                                                                                                                                 
        <version>1.0-SNAPSHOT</version>                                                                                                                                                 
        <packaging>jar</packaging>                                                                                                                                                      
                                                                                                                                                                                        
        <name>my-app</name>                                                                                                                                                             
        <url>http://maven.apache.org</url>                                                                                                                                              
                                                                                                                                                                                        
        <properties>                                                                                                                                                                    
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>                                                                                                            
        </properties>                                                                                                                                                                   
                                                                                                                                                                                        
        <dependencies>                                                                                                                                                                  
          <dependency>                                                                                                                                                                  
            <groupId>junit</groupId>                                                                                                                                                    
            <artifactId>junit</artifactId>                                                                                                                                              
            <version>3.8.1</version>                                                                                                                                                    
            <scope>test</scope>                                                                                                                                                         
          </dependency>                                                                                                                                                                 
          <dependency>                                                                                                                                                                  
            <groupId>org.apache.hbase</groupId>                                                                                                                                         
            <artifactId>hbase-shaded-client</artifactId>                                                                                                                                
            <version>1.1.0</version>                                                                                                                                                    
          </dependency>                                                                                                                                                                 
        </dependencies>                                                                                                                                                                 
      </project> 
      

      Run:

      $ mvn exec:java -Dexec.mainClass="com.mycompany.app.App"
      [INFO] Scanning for projects...
      [INFO]                                                                         
      [INFO] ------------------------------------------------------------------------
      [INFO] Building my-app 1.0-SNAPSHOT
      [INFO] ------------------------------------------------------------------------
      [INFO] 
      [INFO] --- exec-maven-plugin:1.4.0:java (default-cli) @ my-app ---
      [WARNING] 
      java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:606)
              at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
              at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/shaded/javax/xml/transform/TransformerException
              at com.mycompany.app.App.main(App.java:17)
              ... 6 more
      Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.shaded.javax.xml.transform.TransformerException
              at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
              at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
              at java.security.AccessController.doPrivileged(Native Method)
              at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
              ... 7 more
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD FAILURE
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 2.388 s
      [INFO] Finished at: 2015-06-11T13:23:21-04:00
      [INFO] Final Memory: 10M/111M
      [INFO] ------------------------------------------------------------------------
      

      Attachments

        1. HBASE-13889.patch
          15 kB
          Nick Dimiduk
        2. HBASE-13889.patch
          15 kB
          Elliott Neil Clark
        3. 13889.wip.patch
          3 kB
          Nick Dimiduk
        4. Screen Shot 2015-06-11 at 10.59.55 AM.png
          67 kB
          Elliott Neil Clark

        Issue Links

          Activity

            People

              eclark Elliott Neil Clark
              dminkovsky Dmitry Minkovsky
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: