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:29:02 UTC
svn commit: r1096086 - in /pig/trunk:
src/org/apache/pig/scripting/ScriptEngine.java
test/org/apache/pig/test/TestPigRunner.java
Author: xuefu
Date: Fri Apr 22 23:29:02 2011
New Revision: 1096086
URL: http://svn.apache.org/viewvc?rev=1096086&view=rev
Log:
PIG-2006: Regression: NPE when Pig processes an empty script file
Modified:
pig/trunk/src/org/apache/pig/scripting/ScriptEngine.java
pig/trunk/test/org/apache/pig/test/TestPigRunner.java
Modified: pig/trunk/src/org/apache/pig/scripting/ScriptEngine.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/scripting/ScriptEngine.java?rev=1096086&r1=1096085&r2=1096086&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/scripting/ScriptEngine.java (original)
+++ pig/trunk/src/org/apache/pig/scripting/ScriptEngine.java Fri Apr 22 23:29:02 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/trunk/test/org/apache/pig/test/TestPigRunner.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestPigRunner.java?rev=1096086&r1=1096085&r2=1096086&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestPigRunner.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestPigRunner.java Fri Apr 22 23:29:02 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));