azkaban-aplcache

additional pig jar setting fix

10/24/2018 9:41:44 PM

Details

diff --git a/az-hadoop-jobtype-plugin/src/main/java/azkaban/jobtype/HadoopPigJob.java b/az-hadoop-jobtype-plugin/src/main/java/azkaban/jobtype/HadoopPigJob.java
index b799405..be52c51 100644
--- a/az-hadoop-jobtype-plugin/src/main/java/azkaban/jobtype/HadoopPigJob.java
+++ b/az-hadoop-jobtype-plugin/src/main/java/azkaban/jobtype/HadoopPigJob.java
@@ -319,29 +319,30 @@ public class HadoopPigJob extends JavaProcessJob {
     return udfImports;
   }
 
-  protected List<String> getAdditionalJarsList() {
-    List<String> additionalJars = new ArrayList<String>();
-    mergeAdditionalJars(additionalJars, PIG_ADDITIONAL_JARS);
-    mergeAdditionalJars(additionalJars, DEFAULT_PIG_ADDITIONAL_JARS);
-    return additionalJars;
-  }
-
   /**
    * Merging all additional jars first from user specified/plugin.properties
    * then private.properties for additionalJarProperty property
+   * TODO kunkun-tang: A refactor is necessary here. Recommend using Java Optional to better handle
+   * parsing exceptions.
    */
-  private void mergeAdditionalJars(List<String> additionalJars,
-      String additionalJarProperty) {
+  protected List<String> getAdditionalJarsList() {
+    List<String> additionalJars = new ArrayList<>();
     List<String> jobJars =
-        getJobProps().getStringList(additionalJarProperty, null, ",");
+        getJobProps().getStringList(PIG_ADDITIONAL_JARS, null, ",");
     List<String> typeJars =
-        getSysProps().getStringList(additionalJarProperty, null, ",");
+        getSysProps().getStringList(DEFAULT_PIG_ADDITIONAL_JARS, null, ",");
+
+    /*
+      if user defines the custom pig additional Jar, we only incorporate the user
+      settings; otherwise, if system configurations have it, we add the system
+      additional jar settings only.
+     */
     if (jobJars != null) {
       additionalJars.addAll(jobJars);
-    }
-    if (typeJars != null) {
+    } else if (typeJars != null) {
       additionalJars.addAll(typeJars);
     }
+    return additionalJars;
   }
 
   protected String getHadoopUGI() {