Szabolcs Vasas created SQOOP-3218:
-------------------------------------

             Summary: Make sure the original ClassLoader is preserved when 
running HCatalog tests
                 Key: SQOOP-3218
                 URL: https://issues.apache.org/jira/browse/SQOOP-3218
             Project: Sqoop
          Issue Type: Improvement
            Reporter: Szabolcs Vasas


When Sqoop runs in test mode it creates another ClassLoader that loads from the 
generated JAR file in addition to everything else currently on the classpath 
(see: com.cloudera.sqoop.util.ClassLoaderStack#addJarFile) so it is dependent 
of Thread.currentThread().getContextClassLoader() value.
However in HCatalog test cases Sqoop invokes 
org.apache.hive.hcatalog.cli.HCatCli#main method directly in process 
(org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities#executeHCatProgramInProcess)
 which can override the contextClassLoader in the current thread and cause the 
tests to fail.

The task is to improve 
org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities#executeHCatProgramInProcess 
to make sure that the class loader used before invoking HCatCli is restored 
after the main method of the CLI is finished.




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to