You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ha...@apache.org on 2010/10/02 00:09:58 UTC

svn commit: r1003671 - in /hadoop/pig/trunk: ./ src/org/apache/pig/ src/org/apache/pig/impl/logicalLayer/validators/ src/org/apache/pig/impl/plan/ test/org/apache/pig/test/

Author: hashutosh
Date: Fri Oct  1 22:09:58 2010
New Revision: 1003671

URL: http://svn.apache.org/viewvc?rev=1003671&view=rev
Log:
PIG-1531: Pig gobbles up error messages (remaining part)

Modified:
    hadoop/pig/trunk/CHANGES.txt
    hadoop/pig/trunk/src/org/apache/pig/PigServer.java
    hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/validators/InputOutputFileVisitor.java
    hadoop/pig/trunk/src/org/apache/pig/impl/plan/PlanValidator.java
    hadoop/pig/trunk/test/org/apache/pig/test/TestInputOutputFileValidator.java

Modified: hadoop/pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=1003671&r1=1003670&r2=1003671&view=diff
==============================================================================
--- hadoop/pig/trunk/CHANGES.txt (original)
+++ hadoop/pig/trunk/CHANGES.txt Fri Oct  1 22:09:58 2010
@@ -24,6 +24,8 @@ INCOMPATIBLE CHANGES
 
 IMPROVEMENTS
 
+PIG-1531: Pig gobbles up error messages (nrai via hashutosh) 
+
 PIG-1508: Make 'docs' target (forrest) work with Java 1.6 (cwsteinbach via gates)
 
 PIG-1608: pig should always include pig-default.properties and pig.properties in the pig.jar (nrai via daijy)

Modified: hadoop/pig/trunk/src/org/apache/pig/PigServer.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/PigServer.java?rev=1003671&r1=1003670&r2=1003671&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/PigServer.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/PigServer.java Fri Oct  1 22:09:58 2010
@@ -871,10 +871,10 @@ public class PigServer {
             LogicalPlan storePlan = compileLp(unCompiledstorePlan, g, true);
             
             return executeCompiledLogicalPlan(storePlan);
-        } catch (Exception e) {
+        } catch (PigException e) {
             int errCode = 1002;
             String msg = "Unable to store alias " + id;
-            throw new FrontendException(msg, errCode, PigException.INPUT, e);
+            throw new PigException(msg, errCode, PigException.INPUT, e);
         }   
     }
     

Modified: hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/validators/InputOutputFileVisitor.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/validators/InputOutputFileVisitor.java?rev=1003671&r1=1003670&r2=1003671&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/validators/InputOutputFileVisitor.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/validators/InputOutputFileVisitor.java Fri Oct  1 22:09:58 2010
@@ -65,7 +65,7 @@ public class InputOutputFileVisitor exte
         StoreFuncInterface sf = store.getStoreFunc();
         String outLoc = store.getOutputFile().getFileName();
         int errCode = 2116;
-        String validationErrStr ="Output Location Validation Failed for: '" + outLoc ;
+        String validationErrStr ="Output Location Validation Failed for: " + outLoc ;
         Job dummyJob;
         
         try {

Modified: hadoop/pig/trunk/src/org/apache/pig/impl/plan/PlanValidator.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/impl/plan/PlanValidator.java?rev=1003671&r1=1003670&r2=1003671&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/impl/plan/PlanValidator.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/impl/plan/PlanValidator.java Fri Oct  1 22:09:58 2010
@@ -53,8 +53,9 @@ public abstract class PlanValidator<O ex
             messageCollector.collect("Unexpected exception in " 
                                       + this.getClass().getSimpleName(),
                                       MessageType.Error) ;
-            throw new PlanValidationException("An unexpected exception caused " 
-                                              + "the validation to stop", ve) ;
+            String errMsg="An unexpected exception caused the validation to stop";
+            int errCode = 2257;
+            throw new PlanValidationException( errMsg, errCode, ve) ;
         }
     }
     

Modified: hadoop/pig/trunk/test/org/apache/pig/test/TestInputOutputFileValidator.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/test/org/apache/pig/test/TestInputOutputFileValidator.java?rev=1003671&r1=1003670&r2=1003671&view=diff
==============================================================================
--- hadoop/pig/trunk/test/org/apache/pig/test/TestInputOutputFileValidator.java (original)
+++ hadoop/pig/trunk/test/org/apache/pig/test/TestInputOutputFileValidator.java Fri Oct  1 22:09:58 2010
@@ -23,20 +23,25 @@ import java.util.Properties;
 
 import org.apache.pig.ExecType; 
 import org.apache.pig.FuncSpec;
+import org.apache.pig.PigException;
 import org.apache.pig.PigServer;
+import org.apache.pig.ResourceSchema;
 import org.apache.pig.backend.datastorage.DataStorage;
 import org.apache.pig.backend.datastorage.ElementDescriptor;
 import org.apache.pig.backend.hadoop.datastorage.ConfigurationUtil;
 import org.apache.pig.backend.hadoop.executionengine.util.MapRedUtil;
+import org.apache.pig.builtin.PigStorage;
 import org.apache.pig.data.Tuple;
 import org.apache.pig.impl.PigContext;
 import org.apache.pig.impl.io.FileLocalizer;
 import org.apache.pig.impl.io.FileSpec;
+import org.apache.pig.impl.logicalLayer.FrontendException;
 import org.apache.pig.impl.logicalLayer.LOLoad;
 import org.apache.pig.impl.logicalLayer.LOStore;
 import org.apache.pig.impl.logicalLayer.LogicalPlan;
 import org.apache.pig.impl.plan.OperatorKey;
 import org.apache.pig.impl.plan.NodeIdGenerator;
+import org.apache.pig.impl.plan.PlanValidationException;
 
 import org.apache.pig.impl.logicalLayer.validators.* ;
 import org.apache.pig.impl.plan.CompilationMessageCollector;
@@ -244,6 +249,26 @@ public class TestInputOutputFileValidato
             }
         }
     }
+
+    @Test
+    public void testValidationNeg() throws Throwable{
+
+        PigServer pig = new PigServer(ExecType.MAPREDUCE,cluster.getProperties());
+        try{
+            pig.setBatchOn();
+        	pig.registerQuery("A = load 'inputfile' using PigStorage () as (a:int);");
+            pig.registerQuery("store A into 'outfile' using "+DummyStorer.class.getName()+";");
+            pig.executeBatch();
+            assert false;
+        }catch(Exception fe){
+        	assertTrue(fe instanceof PlanValidationException);
+        	PigException pe = LogUtils.getPigException(fe);
+        	assertTrue(pe instanceof FrontendException);
+        	assertEquals(1115, pe.getErrorCode());
+        	assertTrue(pe.getMessage().contains("Exception from DummyStorer."));
+        }
+    }
+ 
         
     private LogicalPlan genNewLoadStorePlan(String inputFile,
                                             String outputFile, DataStorage dfs) 
@@ -319,4 +344,11 @@ public class TestInputOutputFileValidato
             
         return distribElem.toString();
     }
+
+    public static class DummyStorer extends PigStorage{
+    @Override
+        public void checkSchema(ResourceSchema s) throws IOException {
+            throw new FrontendException("Exception from DummyStorer.", 1115);
+        }
+    }
 }