Author: daijy
Date: Thu Jan 15 19:49:59 2015
New Revision: 1652257

URL: http://svn.apache.org/r1652257
Log:
PIG-4376: NullPointerException accessing a field of an invalid bag from a 
nested foreach

Modified:
    pig/trunk/CHANGES.txt
    
pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
    pig/trunk/test/org/apache/pig/parser/TestColumnAliasConversion.java

Modified: pig/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1652257&r1=1652256&r2=1652257&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Thu Jan 15 19:49:59 2015
@@ -42,6 +42,9 @@ PIG-4333: Split BigData tests into multi
  
 BUG FIXES
 
+PIG-4376: NullPointerException accessing a field of an invalid bag from a 
nested foreach
+ (kspringborn via daijy)
+
 PIG-4355: Piggybank: XPath cant handle namespace in xpath, nor can it return 
more than one match
  (cavanaug via daijy)
 

Modified: 
pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
URL: 
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java?rev=1652257&r1=1652256&r2=1652257&view=diff
==============================================================================
--- 
pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
 (original)
+++ 
pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
 Thu Jan 15 19:49:59 2015
@@ -206,7 +206,7 @@ public class DereferenceExpression exten
                    throw new FrontendException("Index "+rawColumn + " out of 
range in schema:" + schema.toString(false), 1127);
                }
                 columns.add( (Integer)rawColumn );
-            } else {
+            } else if (schema!=null) {
                 int pos = schema.getFieldPosition((String)rawColumn);
                 if( pos != -1) {
                     columns.add( pos );

Modified: pig/trunk/test/org/apache/pig/parser/TestColumnAliasConversion.java
URL: 
http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/parser/TestColumnAliasConversion.java?rev=1652257&r1=1652256&r2=1652257&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/parser/TestColumnAliasConversion.java 
(original)
+++ pig/trunk/test/org/apache/pig/parser/TestColumnAliasConversion.java Thu Jan 
15 19:49:59 2015
@@ -159,6 +159,22 @@ public class TestColumnAliasConversion {
         Assert.fail( "Query should fail to validate." );
     }
 
+    @Test
+    public void testInvalidNestedProjection() throws Exception {
+        String query = "A = load 'x' as (field);" +
+                       "B = foreach A {" +
+                       "  C = LIMIT invalidName 1;" +
+                       "  generate C.foo;" +
+                       "};";
+        try {
+            validate( query );
+        } catch(PlanValidationException ex) {
+            System.out.println(ex.getMessage());
+            return;
+        }
+        Assert.fail( "Query should fail to validate." );
+    }
+
     private LogicalPlan validate(String query) throws RecognitionException, 
ParsingFailureException, IOException {
         LogicalPlan plan = ParserTestingUtils.generateLogicalPlan( query );
         ColumnAliasConversionVisitor visitor = new 
ColumnAliasConversionVisitor( plan );


Reply via email to