You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ol...@apache.org on 2008/02/22 20:48:48 UTC

svn commit: r630302 - in /incubator/pig/trunk: ./ src/org/apache/pig/ src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/ src/org/apache/pig/impl/ src/org/apache/pig/impl/logicalLayer/

Author: olga
Date: Fri Feb 22 11:48:45 2008
New Revision: 630302

URL: http://svn.apache.org/viewvc?rev=630302&view=rev
Log:
PIG-109: improved error handling

Modified:
    incubator/pig/trunk/CHANGES.txt
    incubator/pig/trunk/src/org/apache/pig/EvalFunc.java
    incubator/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/PigOutputFormat.java
    incubator/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/PigSplit.java
    incubator/pig/trunk/src/org/apache/pig/impl/PigContext.java
    incubator/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOLoad.java

Modified: incubator/pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/pig/trunk/CHANGES.txt?rev=630302&r1=630301&r2=630302&view=diff
==============================================================================
--- incubator/pig/trunk/CHANGES.txt (original)
+++ incubator/pig/trunk/CHANGES.txt Fri Feb 22 11:48:45 2008
@@ -120,3 +120,5 @@
 
     PIG-46: abort processing on error for non-interactive mode (olston via
     olgan)
+
+    PIG-109: improved exception handling (oae via olgan)

Modified: incubator/pig/trunk/src/org/apache/pig/EvalFunc.java
URL: http://svn.apache.org/viewvc/incubator/pig/trunk/src/org/apache/pig/EvalFunc.java?rev=630302&r1=630301&r2=630302&view=diff
==============================================================================
--- incubator/pig/trunk/src/org/apache/pig/EvalFunc.java (original)
+++ incubator/pig/trunk/src/org/apache/pig/EvalFunc.java Fri Feb 22 11:48:45 2008
@@ -93,13 +93,8 @@
     
 
     private Type getReturnTypeFromSpec(String funcSpec){
-        try{
-            return ((EvalFunc)PigContext.instantiateFuncFromSpec(funcSpec)).getReturnType();
-        }catch (IOException e){
-            throw new RuntimeException(e);
-        }catch (ClassCastException e){
-            throw new RuntimeException(funcSpec + " does not specify an eval func", e);
-        }
+        return ((EvalFunc) PigContext.instantiateFuncFromSpec(funcSpec))
+                .getReturnType();
     }
     
     public Type getReturnType(){

Modified: incubator/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/PigOutputFormat.java
URL: http://svn.apache.org/viewvc/incubator/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/PigOutputFormat.java?rev=630302&r1=630301&r2=630302&view=diff
==============================================================================
--- incubator/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/PigOutputFormat.java (original)
+++ incubator/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/PigOutputFormat.java Fri Feb 22 11:48:45 2008
@@ -54,13 +54,7 @@
         if (storeFunc.length() == 0) {
             store = new PigStorage();
         } else {
-            try {
             store = (StoreFunc) PigContext.instantiateFuncFromSpec(storeFunc);
-            } catch (Exception e) {
-            RuntimeException re = new RuntimeException(e.getClass().getName() + ": " + e.getMessage());
-            re.setStackTrace(e.getStackTrace());
-            throw re;
-            }
         }
         String parentName = outputDir.getParent().getName();
         int suffixStart = parentName.lastIndexOf('.');

Modified: incubator/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/PigSplit.java
URL: http://svn.apache.org/viewvc/incubator/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/PigSplit.java?rev=630302&r1=630301&r2=630302&view=diff
==============================================================================
--- incubator/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/PigSplit.java (original)
+++ incubator/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapreduceExec/PigSplit.java Fri Feb 22 11:48:45 2008
@@ -96,15 +96,10 @@
         if (this.parser == null) {
             loader = new PigStorage();
         } else {
-            try {
-                loader = (LoadFunc) PigContext.instantiateFuncFromSpec(this.parser);
-            }catch(Exception exp) {
-                throw new RuntimeException("can't instantiate " + parser, exp);
-            }
+            loader = (LoadFunc) PigContext.instantiateFuncFromSpec(this.parser);
         }
         return loader;
     }
-
 
     public String[] getLocations() throws IOException {
         String hints[][] = fs.getFileCacheHints(file, start, length);

Modified: incubator/pig/trunk/src/org/apache/pig/impl/PigContext.java
URL: http://svn.apache.org/viewvc/incubator/pig/trunk/src/org/apache/pig/impl/PigContext.java?rev=630302&r1=630301&r2=630302&view=diff
==============================================================================
--- incubator/pig/trunk/src/org/apache/pig/impl/PigContext.java (original)
+++ incubator/pig/trunk/src/org/apache/pig/impl/PigContext.java Fri Feb 22 11:48:45 2008
@@ -403,7 +403,7 @@
     }
     
     @SuppressWarnings("unchecked")
-    private static Object instantiateFunc(String className, String argString) throws IOException {
+    private static Object instantiateFunc(String className, String argString)  {
         Object ret;
         List<String> args = parseArguments(argString);
         try{
@@ -419,12 +419,13 @@
                 ret = objClass.newInstance();
             }
         }catch(Throwable e){
-            throw WrappedIOException.wrap(e.getMessage(), e);
+            throw new RuntimeException("could not instantiate '" + className
+                    + "' with arguments '" + args + "'", e);
         }
         return ret;
     }
     
-    public static Object instantiateFuncFromSpec(String funcSpec) throws IOException{
+    public static Object instantiateFuncFromSpec(String funcSpec) {
         return instantiateFunc(getClassNameFromSpec(funcSpec), getArgStringFromSpec(funcSpec));
     }
     

Modified: incubator/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOLoad.java
URL: http://svn.apache.org/viewvc/incubator/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOLoad.java?rev=630302&r1=630301&r2=630302&view=diff
==============================================================================
--- incubator/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOLoad.java (original)
+++ incubator/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOLoad.java Fri Feb 22 11:48:45 2008
@@ -47,30 +47,12 @@
                   FileSpec inputFileSpec) throws IOException, ParseException {
         super(opTable, scope, id);
         this.inputFileSpec = inputFileSpec;
-        try {
-            LoadFunc storageFunc =
-                (LoadFunc) PigContext.instantiateFuncFromSpec(inputFileSpec.
-                                                              getFuncSpec());
-        } catch(IOException e) {
-            Throwable cause = e.getCause();
-            while (cause != null
-                   && cause.getClass().getName() !=
-                   "java.lang.ClassNotFoundException") {
-                log.error("cause = " + cause.getClass().getName(), e);
-                cause = cause.getCause();
-            } if (cause != null) {
-                ParseException pe = new ParseException("Load function " +
-                                         inputFileSpec.getFuncSpec() +
-                                         " not found");
-                pe.initCause(e);
-                throw pe;
-            } else {
-                throw e;
-            }
+        
+        // check if we can instantiate load func
+        LoadFunc storageFunc = (LoadFunc) PigContext
+                .instantiateFuncFromSpec(inputFileSpec.getFuncSpec());
 
-        }
-
-        //TODO: Handle Schemas defined by Load Functions
+        // TODO: Handle Schemas defined by Load Functions
         schema = new TupleSchema();
     }