You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by xu...@apache.org on 2011/04/23 01:31:38 UTC
svn commit: r1096088 - in /pig/branches/branch-0.9: CHANGES.txt
src/org/apache/pig/scripting/ScriptEngine.java
test/org/apache/pig/test/TestPigRunner.java
Author: xuefu
Date: Fri Apr 22 23:31:38 2011
New Revision: 1096088
URL: http://svn.apache.org/viewvc?rev=1096088&view=rev
Log:
PIG-2006: Regression: NPE when Pig processes an empty script file
Modified:
pig/branches/branch-0.9/CHANGES.txt
pig/branches/branch-0.9/src/org/apache/pig/scripting/ScriptEngine.java
pig/branches/branch-0.9/test/org/apache/pig/test/TestPigRunner.java
Modified: pig/branches/branch-0.9/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/CHANGES.txt?rev=1096088&r1=1096087&r2=1096088&view=diff
==============================================================================
--- pig/branches/branch-0.9/CHANGES.txt (original)
+++ pig/branches/branch-0.9/CHANGES.txt Fri Apr 22 23:31:38 2011
@@ -32,6 +32,8 @@ PIG-1876: Typed map for Pig (daijy)
IMPROVEMENTS
+PIG-2006: Regression: NPE when Pig processes an empty script file (xuefu)
+
PIG-2000: Pig gives incorrect error message dealing with scalar projection (xuefu)
PIG-2002: Regression: Pig gives error "Projection with nothing to reference!" for a valid query (xuefu)
Modified: pig/branches/branch-0.9/src/org/apache/pig/scripting/ScriptEngine.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/src/org/apache/pig/scripting/ScriptEngine.java?rev=1096088&r1=1096087&r2=1096088&view=diff
==============================================================================
--- pig/branches/branch-0.9/src/org/apache/pig/scripting/ScriptEngine.java (original)
+++ pig/branches/branch-0.9/src/org/apache/pig/scripting/ScriptEngine.java Fri Apr 22 23:31:38 2011
@@ -83,6 +83,8 @@ public abstract class ScriptEngine {
* @param firstLine The first line of the file (possibly containing #!...)
*/
public boolean accepts(String file, String firstLine) {
+ if( firstLine == null )
+ return false;
for (String shebang : shebangs) {
Pattern p = Pattern.compile("^#!.*/" + shebang + "\\s*$");
@@ -109,6 +111,8 @@ public abstract class ScriptEngine {
private static final Pattern shebangPattern = Pattern.compile("^#!.+");
private static boolean declaresShebang(String firstLine) {
+ if( firstLine == null )
+ return false;
return shebangPattern.matcher(firstLine).matches();
}
Modified: pig/branches/branch-0.9/test/org/apache/pig/test/TestPigRunner.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/test/org/apache/pig/test/TestPigRunner.java?rev=1096088&r1=1096087&r2=1096088&view=diff
==============================================================================
--- pig/branches/branch-0.9/test/org/apache/pig/test/TestPigRunner.java (original)
+++ pig/branches/branch-0.9/test/org/apache/pig/test/TestPigRunner.java Fri Apr 22 23:31:38 2011
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertTru
import java.io.File;
import java.io.FileWriter;
+import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
@@ -600,6 +601,22 @@ public class TestPigRunner {
}
}
+ @Test // PIG-2006
+ public void testEmptyFile() throws IOException {
+ File f1 = new File("myscript.pig");
+ f1.deleteOnExit();
+
+ FileWriter fw1 = new FileWriter(f1);
+ fw1.close();
+
+ String[] args = { "-x", "local", "-c", "myscript.pig" };
+ PigStats stats = PigRunner.run(args, null);
+
+ Assert.assertTrue(stats.isSuccessful());
+ Assert.assertEquals( 0, stats.getReturnCode() );
+ Assert.assertEquals( null, stats.getErrorMessage() );
+ }
+
@Test
public void returnCodeTest() throws Exception {
PrintWriter w = new PrintWriter(new FileWriter(PIG_FILE));