PIG-5185: Job name show "DefaultJobName" when running a Python script

git-svn-id: https://svn.apache.org/repos/asf/pig/trunk@1796119 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index d6fcf6c..4790219 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -97,6 +97,8 @@
  
 BUG FIXES
 
+PIG-5185: Job name show "DefaultJobName" when running a Python script (daijy)
+
 PIG-4748: DateTimeWritable forgets Chronology (szita)
 
 PIG-5229: TestPigTest.testSpecificOrderOutput and testSpecificOrderOutputForAlias failing (knoguchi)
diff --git a/src/org/apache/pig/scripting/BoundScript.java b/src/org/apache/pig/scripting/BoundScript.java
index 3416499..c50f45b 100644
--- a/src/org/apache/pig/scripting/BoundScript.java
+++ b/src/org/apache/pig/scripting/BoundScript.java
@@ -17,6 +17,7 @@
  */
 package org.apache.pig.scripting;
 
+import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.StringReader;
@@ -264,13 +265,18 @@
         LOG.info("Query to run:\n" + query);
         List<PigProgressNotificationListener> listeners = ScriptState.get().getAllListeners();
         PigContext pc = scriptContext.getPigContext();
+        String scriptName = new File(ScriptState.get().getFileName()).getName();
         ScriptState scriptState = pc.getExecutionEngine().instantiateScriptState();
+        scriptState.setFileName(scriptName);
         ScriptState.start(scriptState);
         ScriptState.get().setScript(query);
         for (PigProgressNotificationListener listener : listeners) {
             ScriptState.get().registerListener(listener);
         }
         PigServer pigServer = new PigServer(scriptContext.getPigContext(), false);
+        if (!pigServer.getPigContext().getProperties().containsKey("jobName")) {
+            pigServer.setJobName(scriptName);
+        }
         GruntParser grunt = new GruntParser(new StringReader(query), pigServer);
         grunt.setInteractive(false);
         try {
diff --git a/test/org/apache/pig/test/TestScriptLanguage.java b/test/org/apache/pig/test/TestScriptLanguage.java
index 79571f5..1e1aa55 100644
--- a/test/org/apache/pig/test/TestScriptLanguage.java
+++ b/test/org/apache/pig/test/TestScriptLanguage.java
@@ -31,6 +31,7 @@
 import org.apache.pig.PigRunner;
 import org.apache.pig.PigServer;
 import org.apache.pig.data.Tuple;
+import org.apache.pig.impl.PigContext;
 import org.apache.pig.scripting.ScriptEngine;
 import org.apache.pig.tools.pigstats.OutputStats;
 import org.apache.pig.tools.pigstats.PigStats;
@@ -248,6 +249,8 @@
         assertEquals("simple_out", name);
         assertEquals(12, stats.getBytesWritten());
         assertEquals(3, stats.getRecordWritten());
+        String jobName = stats.getPigProperties().getProperty(PigContext.JOB_NAME);
+        assertTrue(jobName.contains("pigRunnerTest"));
     }
 
     @Test
@@ -260,6 +263,7 @@
                 "Pig.fs(\"rmr simple_out2\")",
                 "output1 = 'simple_out'",
                 "output2 = 'simple_out2'",
+                "P.set(\"jobName\", \"myjob\")",
                 "P = Pig.compile(\"mypipeline\", \"\"\"a = load '$input';store a into '$output';\"\"\")",
                 "Q = P.bind([{'input':input, 'output':output1}, {'input':input, 'output':output2}])",
                 "stats = Q.run()"
@@ -284,6 +288,8 @@
             assertEquals(1, stats.getNumberJobs());
             assertEquals(12, stats.getBytesWritten());
             assertEquals(3, stats.getRecordWritten());
+            String jobName = stats.getPigProperties().getProperty(PigContext.JOB_NAME);
+            assertTrue(jobName.contains("myjob"));
         }
     }