You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Peter Bacsko (JIRA)" <ji...@apache.org> on 2017/03/25 14:43:42 UTC

[jira] [Created] (OOZIE-2845) Replace reflection-based code which sets variable in HiveConf

Peter Bacsko created OOZIE-2845:
-----------------------------------

             Summary: Replace reflection-based code which sets variable in HiveConf
                 Key: OOZIE-2845
                 URL: https://issues.apache.org/jira/browse/OOZIE-2845
             Project: Oozie
          Issue Type: Improvement
          Components: core
            Reporter: Peter Bacsko
            Assignee: Peter Bacsko


In different places, we use the following reflection-based code, to reset a variable inside {{HiveConf.java}}

{code}
    public static void resetHiveConfStaticVariables() throws Exception {
        // HiveConf initializes location of hive-site.xml in static block.
        // So this is needed so that tests like TestHiveMain that create hive-site.xml don't fail.
        Field declaredField = HiveConf.class.getDeclaredField("hiveSiteURL");
        declaredField.setAccessible(true);
        declaredField.set(null, HiveConf.class.getClassLoader().getResource("hive-site.xml"));
    }
{code}

Note that HiveConf has supported setting {{hiveSiteURL}} for a long time. Even version 0.13.0 has the static setter method:

https://github.com/apache/hive/blob/branch-0.13/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java#L1493-L1495

Therefore reflection-based solution should be modified.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)