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); + } + } }