Uploaded image for project: 'Pig'
  1. Pig
  2. PIG-125

improve exception handling and expressivness around tuple field access

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.1.0
    • Component/s: impl
    • Labels:
      None
    • Patch Info:
      Patch Available

      Description

      Stumbled over the case that i'm accessing fields in a tuple which type are not as i expected. The stack trace in one case looked as follow:

      Exception in thread "main" java.lang.RuntimeException: execution failed
      	at com.my.Executor.run(Executor.java:284)
      Caused by: java.io.IOException: Unable to store alias C
      	at org.apache.pig.impl.util.WrappedIOException.wrap(WrappedIOException.java:16)
      	at org.apache.pig.PigServer.store(PigServer.java:335)
      	at org.apache.pig.PigServer.store(PigServer.java:317)
      	at com.my.Executor.run(Executor.java:280)
      	... 2 more
      Caused by: org.apache.pig.backend.executionengine.ExecException
      	at org.apache.pig.backend.local.executionengine.LocalExecutionEngine.execute(LocalExecutionEngine.java:137)
      	at org.apache.pig.backend.local.executionengine.LocalExecutionEngine.execute(LocalExecutionEngine.java:32)
      	at org.apache.pig.PigServer.store(PigServer.java:332)
      	... 4 more
      Caused by: java.io.IOException: Incompatible type for request getAtomField().
      	at org.apache.pig.data.Tuple.getAtomField(Tuple.java:177)
      	at com.my.DatabaseStoreFunc.putNext(DatabaseStoreFunc.java:83)
      	at org.apache.pig.impl.io.PigFile.store(PigFile.java:64)
      	at org.apache.pig.backend.local.executionengine.POStore.getNext(POStore.java:105)
      	at org.apache.pig.backend.local.executionengine.LocalExecutionEngine.execute(LocalExecutionEngine.java:130)
      	... 6 more
      

      The exception message and the stacktrace gave me a clue what kind of problem i was facing. But to know what exactly happened i needed to debug (or temporarily add some system-outs).
      Looking at the code (of Tuple class) i think the exception-information can be improved easily (add index and actual field type information) .
      Also it seems that there is some space for simplifying the exception handling.

        Attachments

        1. PIG-125.patch
          11 kB
          Johannes Zillmann

          Activity

            People

            • Assignee:
              oae Johannes Zillmann
              Reporter:
              oae Johannes Zillmann
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: