You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "Szabolcs Vasas (JIRA)" <ji...@apache.org> on 2017/08/04 15:35:00 UTC

[jira] [Updated] (SQOOP-3218) Make sure the original ClassLoader is restored when running HCatalog tests

     [ https://issues.apache.org/jira/browse/SQOOP-3218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Szabolcs Vasas updated SQOOP-3218:
----------------------------------
    Summary: Make sure the original ClassLoader is restored when running HCatalog tests  (was: Make sure the original ClassLoader is preserved when running HCatalog tests)

> Make sure the original ClassLoader is restored when running HCatalog tests
> --------------------------------------------------------------------------
>
>                 Key: SQOOP-3218
>                 URL: https://issues.apache.org/jira/browse/SQOOP-3218
>             Project: Sqoop
>          Issue Type: Improvement
>            Reporter: Szabolcs Vasas
>            Assignee: 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)